summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Test/ArmorSoldierScript_States.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Test/ArmorSoldierScript_States.cs')
-rw-r--r--Assets/Scripts/Test/ArmorSoldierScript_States.cs20
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);
}