package playerStateMachineLeftHandCyberware

leftHandCyberwareSafe : baseLeftHandCyberwareState
{
	bool hasEnterCondition = true;
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareUnequip"
	];
	string[] transitionCondition = 
	[
		"="
	];
	float stateDuration = 2.0;
}

leftHandCyberwareEquip : baseLeftHandCyberwareState
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareQuickAction", "leftHandCyberwareCharge", "leftHandCyberwareLoop", "leftHandCyberwareUnequip", "leftHandCyberwareSafe"
	];
	string[] transitionCondition = 
	[
		"", "=", "", "=", ""
	];
}

leftHandCyberwareLoop : baseLeftHandCyberwareState
{
	bool hasEnterCondition = true;
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareWaitForUnequip", "leftHandCyberwareUnequip"
	];
	string[] transitionCondition = 
	[
		"=", "="
	];
	float stateDuration = 0.5;
}

leftHandCyberwareCharge : baseLeftHandCyberwareState
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	bool hasOnUpdate = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareChargeAction", "leftHandCyberwareChargeRepeatAction", "leftHandCyberwareWaitForUnequip", "leftHandCyberwareUnequip"
	];
	string[] transitionCondition = 
	[
		"=", "=", "=", "="
	];
	float stateDuration = 0.567;
}

leftHandCyberwareActionAbstract : baseLeftHandCyberwareState
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	bool hasOnUpdate = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareWaitForUnequip"
	];
	string[] transitionCondition = 
	[
		"="
	];
	float projectileDetachDelay = 0.1;
}

leftHandCyberwareQuickAction : leftHandCyberwareActionAbstract
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	bool hasEnterCondition = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareUnequip"
	];
	string[] transitionCondition = 
	[
		"="
	];
	float projectileDetachDelay = 0.15;
}

leftHandCyberwareChargeAction : leftHandCyberwareActionAbstract
{
	float stateDuration = 0.3;
}

leftHandCyberwareChargeRepeatAction : leftHandCyberwareActionAbstract
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	bool hasOnUpdate = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareWaitForUnequip", "leftHandCyberwareChargeRepeatAction"
	];
	string[] transitionCondition = 
	[
		"=", "="
	];
	float stateDuration = 0.5;
	float maxSpread = 5.0;
	int maxProjectiles = 5;
}

leftHandCyberwareCatchAction : leftHandCyberwareActionAbstract
{
	float stateDuration = 0.7;
}

leftHandCyberwareCatch : baseLeftHandCyberwareState
{
	bool hasEnterCondition = true;
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareWaitForUnequip", "leftHandCyberwareCatchAction"
	];
	string[] transitionCondition = 
	[
		"=", "="
	];
	float throwWindowStart = 0.35;
	float throwWindowEnd = -1.;
	float stateDuration = 1.2;
	bool preventButtonSpamming = true;
}

leftHandCyberwareWaitForUnequip : baseLeftHandCyberwareState
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = 
	[
		"leftHandCyberwareUnequip"
	];
	string[] transitionCondition = 
	[
		"="
	];
}

leftHandCyberwareUnequip : baseLeftHandCyberwareState
{
	bool hasOnEnter = true;
	bool hasOnExit = true;
	string[] transitionTo = [];
	string[] transitionCondition = [];
}

