summaryrefslogtreecommitdiff
path: root/Assets/Scripts/AbilitySystem/Abilities
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/AbilitySystem/Abilities')
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs65
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs22
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs22
3 files changed, 91 insertions, 18 deletions
diff --git a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs
index 6732cf57..067d49a8 100644
--- a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs
+++ b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs
@@ -2,12 +2,67 @@
using System.Collections.Generic;
using UnityEngine;
-/// <summary>
-/// 单个招式ability
-/// </summary>
-public class AttackAbilityBase : AbilityBase
+public class AttackAbility : AbilityBase
{
- // 攻击ability默认都会回到idle
+ Animator m_Animator;
+ int m_AnimHash;
+ /// <summary>
+ /// 在跑动状态时可以切换的ability
+ /// </summary>
+ private List<Trigger> m_Triggers = new List<Trigger>();
+
+ public AttackAbility(Animator animator, int animation)
+ {
+ m_Animator = animator;
+ m_AnimHash = animation;
+ }
+
+ public override void OnInit()
+ {
+
+ }
+
+ public override void OnDefend()
+ {
+ throw new System.NotImplementedException();
+ }
+
+ public override void OnEnter()
+ {
+ m_Animator.CrossFade(m_AnimHash, 0);
+ }
+
+ public override void OnExit()
+ {
+ }
+
+ public override void OnHit()
+ {
+ }
+
+ public override void OnHurt()
+ {
+ }
+
+ public override void OnTranslate(AbilityBase to)
+ {
+ }
+
+ public override void OnUpdate()
+ {
+ foreach (var abilityTrigger in m_Triggers)
+ {
+ if (abilityTrigger.Update())
+ break;
+ }
+ }
+
+ public void AddTrigger(Trigger trigger)
+ {
+ if (trigger == null || m_Triggers.Contains(trigger))
+ return;
+ m_Triggers.Add(trigger);
+ }
}
diff --git a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs
index 4b9cd21e..8be58188 100644
--- a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs
+++ b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs
@@ -5,25 +5,27 @@ using UnityEngine;
public class IdleAbility : AbilityBase
{
- /// <summary>
- /// idle的动画
- /// </summary>
+ Animator m_Animator;
+
int m_AnimHash;
/// <summary>
/// 在Idle状态时可以切换的ability
/// </summary>
- private List<Trigger> m_Triggers;
+ private List<Trigger> m_Triggers = new List<Trigger>();
- public IdleAbility(int animation)
+ public IdleAbility(Animator animator, int animation)
: base()
{
- m_AnimHash = animation;
+ m_Animator = animator;
+ m_AnimHash = animation;
}
public override void OnEnter()
{
-
+ m_Animator.speed = 1;
+ m_Animator.CrossFade(m_AnimHash, 0.3f);
+ m_Animator.speed = 0;
}
public override void OnInit()
@@ -42,9 +44,11 @@ public class IdleAbility : AbilityBase
base.OnUpdate();
}
- public void AddTrigger()
+ public void AddTrigger(Trigger trigger)
{
-
+ if (trigger == null || m_Triggers.Contains(trigger))
+ return;
+ m_Triggers.Add(trigger);
}
}
diff --git a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
index 2c39afd5..eadee433 100644
--- a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
+++ b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs
@@ -4,11 +4,19 @@ using UnityEngine;
public class MoveAbility : AbilityBase
{
+ Animator m_Animator;
+ int m_AnimHash;
/// <summary>
/// 在跑动状态时可以切换的ability
/// </summary>
- private List<Trigger> m_Triggers;
+ private List<Trigger> m_Triggers = new List<Trigger>();
+
+ public MoveAbility(Animator animator, int animation)
+ {
+ m_Animator = animator;
+ m_AnimHash = animation;
+ }
public override void OnInit()
{
@@ -22,7 +30,7 @@ public class MoveAbility : AbilityBase
public override void OnEnter()
{
-
+ m_Animator.CrossFade(m_AnimHash, 0);
}
public override void OnExit()
@@ -31,7 +39,6 @@ public class MoveAbility : AbilityBase
public override void OnHit()
{
- throw new System.NotImplementedException();
}
public override void OnHurt()
@@ -40,7 +47,6 @@ public class MoveAbility : AbilityBase
public override void OnTranslate(AbilityBase to)
{
- throw new System.NotImplementedException();
}
public override void OnUpdate()
@@ -51,4 +57,12 @@ public class MoveAbility : AbilityBase
break;
}
}
+
+ public void AddTrigger(Trigger trigger)
+ {
+ if (trigger == null || m_Triggers.Contains(trigger))
+ return;
+ m_Triggers.Add(trigger);
+ }
+
}