summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components/UnitState
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitState')
-rw-r--r--Assets/Scripts/Unit/Components/UnitState/MonsterState.cs1
-rw-r--r--Assets/Scripts/Unit/Components/UnitState/PCState.cs64
2 files changed, 57 insertions, 8 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs
index 1dba2b7d..db68493b 100644
--- a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs
+++ b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs
@@ -132,6 +132,7 @@ public class MonsterState : UnitState
IEnumerator HitAir(HitAirParam param)
{
+ ((MonsterController)owner).FacePC();
m_Owner.monsterAnimation.AnimHitAir();
yield return null;
while (true)
diff --git a/Assets/Scripts/Unit/Components/UnitState/PCState.cs b/Assets/Scripts/Unit/Components/UnitState/PCState.cs
index e448b6b2..c8937895 100644
--- a/Assets/Scripts/Unit/Components/UnitState/PCState.cs
+++ b/Assets/Scripts/Unit/Components/UnitState/PCState.cs
@@ -20,6 +20,7 @@ public class PCState : UnitState
//
Attack,
AirAttack,
+ AttackToAir,
AirDash,
//
HitAir,
@@ -66,7 +67,7 @@ public class PCState : UnitState
public struct SkillParam
{
-
+ public float offset;
}
public struct AirDashParam
@@ -153,7 +154,11 @@ public class PCState : UnitState
{
ChangeState(EUnitState.Attack, new SkillParam());
}
- if (Input.GetKeyDown("space"))
+ if(Input.GetKeyDown("u"))
+ {
+ ChangeState(EUnitState.AttackToAir, new SkillParam());
+ }
+ if (Input.GetKeyDown("space"))
{
ChangeState(EUnitState.Jump, new JumpParam());
}
@@ -221,8 +226,19 @@ public class PCState : UnitState
yield return null;
while (true)
{
- bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo);
- if (canCombo && id < total)
+ bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo);
+ if (canCombo)
+ {
+ //if (InputManager.Instance.TryCommand(0.5f, KeyCode.W, KeyCode.J))
+ if (Input.GetKeyDown("u"))
+ {
+ SkillParam skill = new SkillParam();
+ skill.offset = 0.12f;
+ ChangeState(EUnitState.AttackToAir, skill);
+ }
+ }
+
+ if (canCombo && id < total)
{
if (Input.GetKeyDown("j"))
{
@@ -252,12 +268,44 @@ public class PCState : UnitState
void OnAttackExit(EUnitState next)
{
- }
-
+ }
+
#endregion
-
+
+ #region AttackToAir
+
+ IEnumerator AttackToAir(SkillParam param)
+ {
+ m_Owner.pcAnimation.AnimAttackToAir(param.offset);
+ yield return null;
+ while (true)
+ {
+ bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo);
+ if(canCombo)
+ {
+ if(Input.GetKeyDown("j"))
+ {
+ ChangeState(EUnitState.AirAttack, new SkillParam());
+ }
+ }
+
+ bool reachEnd = m_Owner.pcAnimation.baseLayer.playbackNormalizedTime == 1;
+ if (reachEnd)
+ {
+ ChangeState(EUnitState.Landing, new LandingParam());
+ }
+ yield return null;
+ }
+ }
+
+ void OnAttackToAirExit()
+ {
+ }
+
+ #endregion
+
#region AirAttack
-
+
IEnumerator AirAttack(SkillParam param)
{
int id = 0;