diff options
Diffstat (limited to 'Assets/Scripts/AbilitySystem')
10 files changed, 86 insertions, 8 deletions
diff --git a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs index 5dbe6d6c..9798d7a2 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs @@ -74,7 +74,7 @@ public class AttackAbility : AbilityBase }
foreach (var abilityTrigger in m_Triggers)
{
- if (abilityTrigger.Update())
+ if (abilityTrigger.Update() && abilityTrigger.Swallow)
break;
}
}
diff --git a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs index 0a59419f..d42308db 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs @@ -35,7 +35,7 @@ public class IdleAbility : AbilityBase {
foreach(var trigger in m_Triggers)
{
- if (trigger.Update())
+ if (trigger.Update() && trigger.Swallow)
break;
}
diff --git a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs index 139325b6..757cd2d1 100644 --- a/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs +++ b/Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs @@ -53,7 +53,7 @@ public class MoveAbility : AbilityBase {
foreach (var abilityTrigger in m_Triggers)
{
- if (abilityTrigger.Update())
+ if (abilityTrigger.Update() && abilityTrigger.Swallow)
break;
}
}
diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs new file mode 100644 index 00000000..2da01daf --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// 残影特效 +public class ActionDisableGhost : ActionBase +{ + CharacterGhostEffect m_GhostEffect; + + public ActionDisableGhost(CharacterGhostEffect effect) + { + m_GhostEffect = effect; + } + + public override void Execute() + { + m_GhostEffect.IsEnable = false; + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta new file mode 100644 index 00000000..185da50b --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8548d7836b8033643954ca68cc3a5948 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs index 0bff3df3..05d3a1a5 100644 --- a/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs +++ b/Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs @@ -5,10 +5,15 @@ using UnityEngine; // 残影特效
public class ActionEffectGhost : ActionBase
{
+ CharacterGhostEffect m_GhostEffect;
+ public ActionEffectGhost(CharacterGhostEffect effect)
+ {
+ m_GhostEffect = effect;
+ }
public override void Execute()
{
-
- }
+ m_GhostEffect.IsEnable = true;
+ }
}
diff --git a/Assets/Scripts/AbilitySystem/Bahaviours.meta b/Assets/Scripts/AbilitySystem/Bahaviours.meta new file mode 100644 index 00000000..982222bf --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Bahaviours.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d10a8e3e46f321146b54b9f74ca76db6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs b/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs new file mode 100644 index 00000000..cbc9c632 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GhostEffectSpwan : MonoBehaviour +{ + public CharacterGhostEffect GhostEffect; + + public void SpawnGhost() + { + GhostEffect.CreateGhost(); + } + +} diff --git a/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta b/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta new file mode 100644 index 00000000..4acfc78c --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12bdc2613cfcd9043ad58b1bcc15c8ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Trigger.cs b/Assets/Scripts/AbilitySystem/Trigger.cs index 416655ee..dc173a6d 100644 --- a/Assets/Scripts/AbilitySystem/Trigger.cs +++ b/Assets/Scripts/AbilitySystem/Trigger.cs @@ -8,20 +8,30 @@ using UnityEngine; public sealed class Trigger { + public bool Swallow; + private ConditionBase m_Condition; private List<ActionBase> m_ActionChain = new List<ActionBase>(); - - public Trigger(ConditionBase condition, List<ActionBase> actions) + + public Trigger(ConditionBase condition, List<ActionBase> actions, bool onlyOnce = false, bool swallow = true) { + Swallow = swallow; m_Condition = condition; m_ActionChain.AddRange(actions); } - public Trigger(ConditionBase condition, ActionBase action) + public Trigger(ConditionBase condition, ActionBase action, bool onlyOnce = false, bool swallow = true) { + Swallow = swallow; m_Condition = condition; m_ActionChain.Add(action); } + //重置触发器的参数 + public void Reset() + { + + } + /// <summary> /// 如果触发执行了,返回true,否则返回false /// </summary> |