From 8268e4e308bd110dfea4ad849a7ff74e66951349 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 22 Oct 2020 08:57:28 +0800 Subject: =?UTF-8?q?*=E6=AE=8B=E5=BD=B1=E7=89=B9=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/AbilitySystem/Abilities/AttackAbility.cs | 2 +- Assets/Scripts/AbilitySystem/Abilities/IdleAbility.cs | 2 +- Assets/Scripts/AbilitySystem/Abilities/MoveAbility.cs | 2 +- .../Actions/ActionEffects/ActionDisableGhost.cs | 19 +++++++++++++++++++ .../Actions/ActionEffects/ActionDisableGhost.cs.meta | 11 +++++++++++ .../Actions/ActionEffects/ActionEffectGhost.cs | 9 +++++++-- Assets/Scripts/AbilitySystem/Bahaviours.meta | 8 ++++++++ .../AbilitySystem/Bahaviours/GhostEffectSpwan.cs | 14 ++++++++++++++ .../AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta | 11 +++++++++++ Assets/Scripts/AbilitySystem/Trigger.cs | 16 +++++++++++++--- 10 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionEffects/ActionDisableGhost.cs.meta create mode 100644 Assets/Scripts/AbilitySystem/Bahaviours.meta create mode 100644 Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs create mode 100644 Assets/Scripts/AbilitySystem/Bahaviours/GhostEffectSpwan.cs.meta (limited to 'Assets/Scripts/AbilitySystem') 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 m_ActionChain = new List(); - - public Trigger(ConditionBase condition, List actions) + + public Trigger(ConditionBase condition, List 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() + { + + } + /// /// 如果触发执行了,返回true,否则返回false /// -- cgit v1.1-26-g67d0