summaryrefslogtreecommitdiff
path: root/Assets/Scripts/AbilitySystem
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/AbilitySystem')
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/AttackAbility.cs2
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs2
-rw-r--r--Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs2
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs19
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionEffectGhost.cs9
-rw-r--r--Assets/Scripts/AbilitySystem/Bahaviours.meta8
-rw-r--r--Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs14
-rw-r--r--Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta11
-rw-r--r--Assets/Scripts/AbilitySystem/Trigger.cs16
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>