This commit is contained in:
juanjp600
2018-03-08 11:48:17 -03:00
3 changed files with 49 additions and 11 deletions

View File

@@ -80,6 +80,14 @@ namespace Barotrauma
ColliderIndex = Crouching ? 1 : 0;
if (!Crouching && ColliderIndex == 1) Crouching = true;
//stun (= disable the animations) if the ragdoll receives a large enough impact
if (strongestImpact > 0.0f)
{
character.SetStun(MathHelper.Min(strongestImpact * 0.5f, 5.0f));
strongestImpact = 0.0f;
return;
}
if (!character.AllowInput)
{
levitatingCollider = false;
@@ -95,15 +103,6 @@ namespace Barotrauma
return;
}
//stun (= disable the animations) if the ragdoll receives a large enough impact
if (strongestImpact > 0.0f)
{
character.SetStun(MathHelper.Min(strongestImpact * 0.5f, 5.0f));
strongestImpact = 0.0f;
return;
}
//re-enable collider
if (!Collider.Enabled)
{

View File

@@ -1405,6 +1405,34 @@ namespace Barotrauma
{
findFocusedTimer -= deltaTime;
}
//climb ladders automatically when pressing up/down inside their trigger area
if (selectedConstruction == null && !AnimController.InWater)
{
bool climbInput = IsKeyDown(InputType.Up) || IsKeyDown(InputType.Down);
Ladder nearbyLadder = null;
if (Controlled == this || climbInput)
{
float minDist = float.PositiveInfinity;
foreach (Ladder ladder in Ladder.List)
{
float dist;
if (CanInteractWith(ladder.Item, out dist) && dist < minDist)
{
minDist = dist;
nearbyLadder = ladder;
if (Controlled == this) ladder.Item.IsHighlighted = true;
break;
}
}
}
if (nearbyLadder != null && climbInput)
{
if (nearbyLadder.Select(this)) selectedConstruction = nearbyLadder.Item;
}
}
if (SelectedCharacter != null && focusedItem == null && IsKeyHit(InputType.Select)) //Let people use ladders and buttons and stuff when dragging chars
{

View File

@@ -1,13 +1,20 @@
using System.Xml.Linq;
using System.Collections.Generic;
using System.Xml.Linq;
namespace Barotrauma.Items.Components
{
class Ladder : ItemComponent
{
private static List<Ladder> list = new List<Ladder>();
public static List<Ladder> List
{
get { return list; }
}
public Ladder(Item item, XElement element)
: base(item, element)
{
list.Add(this);
}
public override bool Select(Character character)
@@ -15,9 +22,13 @@ namespace Barotrauma.Items.Components
if (character == null || character.LockHands || character.Removed) return false;
character.AnimController.Anim = AnimController.Animation.Climbing;
//picker.SelectedConstruction = item;
return true;
}
protected override void RemoveComponentSpecific()
{
list.Remove(this);
}
}
}