diff options
Diffstat (limited to 'Assets/Scripts/Test/ArmorSoldierScript_States.cs')
-rw-r--r-- | Assets/Scripts/Test/ArmorSoldierScript_States.cs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Assets/Scripts/Test/ArmorSoldierScript_States.cs b/Assets/Scripts/Test/ArmorSoldierScript_States.cs index 04532dd2..3df583f2 100644 --- a/Assets/Scripts/Test/ArmorSoldierScript_States.cs +++ b/Assets/Scripts/Test/ArmorSoldierScript_States.cs @@ -23,17 +23,18 @@ public partial class ArmorSoldierScript : Avatar, IInteractable m_StateGroundHurt = groundHurt; m_StateAirHurt = airHurt; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // conditions - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ConditionInAir condInAir = new ConditionInAir(m_BodyCollider); - + HurtState getUp = new HurtState(m_Animator, Anim_GetUp); +
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // conditions
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ConditionInAir condInAir = new ConditionInAir(m_BodyCollider); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // actions //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ActionSwitchState switchToIdle = new ActionSwitchState(m_StateController, idle); + ActionSwitchState switchToGetUp = new ActionSwitchState(m_StateController, getUp); Trigger trigger = null;
@@ -49,9 +50,14 @@ public partial class ArmorSoldierScript : Avatar, IInteractable // air hurt
ConditionMotionAtEnd airAtEnd = new ConditionMotionAtEnd(m_Animator, Anim_AirHurt); - trigger = new Trigger(And(airAtEnd, Not(condInAir)), switchToIdle); + trigger = new Trigger(And(airAtEnd, Not(condInAir)), switchToGetUp); airHurt.AddTrigger(trigger); + // getup + ConditionMotionAtEnd getUpEnd = new ConditionMotionAtEnd(m_Animator, Anim_GetUp); + trigger = new Trigger(getUpEnd, switchToIdle); + getUp.AddTrigger(trigger); + m_StateController.ForceStart(idle); } |