package playerStateMachineBaseLocomotion
using playerStateMachineStateBase

baseLocomotionState : baseState
{
	CName onEnterCameraParamsName = "Default";
	bool hasEnterCondition = false;
	bool hasExitCondition = false;
	bool hasOnEnter = true;
	bool hasOnExit = false;
	bool hasOnUpdate = true;
	bool imperfectTurn = false;
	bool speedBoostInputRequired = false;
	bool speedBoostMultiplyByDot = false;
	float upwardsGravity = -16;
	float downwardsGravity = -16;
	float capsuleHeight = 1.8;
	float capsuleRadius = 0.4;
	float slideSafeArea = -0.46;
	bool useCameraHeadingForMovement = false;
	float defaultGravity = -16;
	float softBlockAimingOnEnterFor = -1;
	CName collisionFilterPresetName = "Player Collision";
	bool collisionFilterPresetIsZero = false;
	bool ignoreSlope = false;
	bool ignoreBarbedWire = true;
}

locomotionGround : baseLocomotionState
{
	string stateType = "Locomotion_Ground";
	string stateBodyClassName = "LocomotionSimple";
	CName decelerationCurve = "deceleration_multiplier";
	bool causeContactDestruction = true;
	float lerpSpeedRateToMaxSpeed = 3.0;
}

locomotionDash : baseLocomotionState
{
	string stateType = "Locomotion_Ground";
	string stateBodyClassName = "LocomotionSimple";
	CName decelerationCurve = "slope_curve";
	bool causeContactDestruction = true;
	float lerpSpeedRateToMaxSpeed = 0.1;
}

locomotionWater : baseLocomotionState
{
	string stateType = "Locomotion_Water";
}

locomotionAir : baseLocomotionState
{
	string stateType = "Locomotion_Air";
	string stateBodyClassName = "LocomotionSimple";
	bool hasEnterCondition = true;
	bool hasExitCondition = false;
	bool hasOnExit = true;
	bool hasOnUpdate = true;
	bool imperfectTurn = true;
	int numberOfMultiJumps = 1;
	float capsuleHeight = -1;
	float capsuleRadius = -1;
	float minFallHeightToConsiderInputToggles = 0.1;
	float minFallHeightToEnterSuperheroFall = 2.0;
	float regularLandingHeight = 0.2;
	float superheroLandingHeight = 2.5;
	float safeLandingHeight = 1.0;
	float hardLandingHeight = 5.0;
	float veryHardLandingHeight = 10.0;
	float deathLanding = 20.;
	float maxDistToGroundFromSuperheroFall = 30.0;
	float maxHorizontalSpeedToAerialTakedown = 5.;
	bool causeContactDestruction = true;
	bool ignoreBarbedWire = false;
}

