Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/Source/Characters/Animation/AnimController.cs
Alex Noir 48fb3d58b9 Let players choose to grab onto the body's torso!
Better CPR animations
todo: network the limb targeting
2017-12-08 13:47:27 +03:00

74 lines
2.0 KiB
C#

using FarseerPhysics;
using Microsoft.Xna.Framework;
using System.Xml.Linq;
namespace Barotrauma
{
class AnimController : Ragdoll
{
public enum Animation { None, Climbing, UsingConstruction, Struggle, CPR };
public Animation Anim;
public LimbType GrabLimb;
protected Character character;
protected float walkSpeed, swimSpeed;
protected float walkPos;
protected readonly Vector2 stepSize;
protected readonly float legTorque;
public float RunSpeedMultiplier
{
get;
private set;
}
public float SwimSpeedMultiplier
{
get;
private set;
}
public Vector2 AimSourcePos
{
get { return ConvertUnits.ToDisplayUnits(AimSourceSimPos); }
}
public virtual Vector2 AimSourceSimPos
{
get
{
return Collider.SimPosition;
}
}
public AnimController(Character character, XElement element)
: base(character, element)
{
this.character = character;
stepSize = element.GetAttributeVector2("stepsize", Vector2.One);
stepSize = ConvertUnits.ToSimUnits(stepSize);
walkSpeed = element.GetAttributeFloat("walkspeed", 1.0f);
swimSpeed = element.GetAttributeFloat("swimspeed", 1.0f);
RunSpeedMultiplier = element.GetAttributeFloat("runspeedmultiplier", 2f);
SwimSpeedMultiplier = element.GetAttributeFloat("swimspeedmultiplier", 1.5f);
legTorque = element.GetAttributeFloat("legtorque", 0.0f);
}
public virtual void UpdateAnim(float deltaTime) { }
public virtual void HoldItem(float deltaTime, Item item, Vector2[] handlePos, Vector2 holdPos, Vector2 aimPos, bool aim, float holdAngle) { }
public virtual void DragCharacter(Character target) { }
}
}