From dcaad8044384bce4f4358522108bf9a2481ee4e0 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Oct 2020 12:44:29 +0800 Subject: *physics --- .../AbilitySystem/Conditions/ConditionBase.cs | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs') diff --git a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs index c14624ad..e63bedb0 100644 --- a/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs +++ b/Assets/Scripts/AbilitySystem/Conditions/ConditionBase.cs @@ -103,3 +103,75 @@ public sealed class ConditionNone : ConditionBase } +/// +/// 两个condition都达成才会返回真 +/// +public sealed class ConditionMultiAnd : ConditionBase +{ + List m_Conditions; + + public ConditionMultiAnd(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach(var condition in m_Conditions) + { + if(!condition.Evaluate()) + return false; + } + return true; + } +} + +/// +/// 两个condition至少一个达成才会返回真 +/// +public sealed class ConditionMultiOr : ConditionBase +{ + List m_Conditions; + + public ConditionMultiOr(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach (var condition in m_Conditions) + { + if (condition.Evaluate()) + return true; + } + return false; + } +} + +/// +/// 两个condition都不达成才会返回真 +/// +public sealed class ConditionMultiNone : ConditionBase +{ + List m_Conditions; + + public ConditionMultiNone(List conditions) + : base() + { + m_Conditions.AddRange(conditions); + } + + public override bool Evaluate() + { + foreach (var condition in m_Conditions) + { + if (condition.Evaluate()) + return false; + } + return true; + } +} + -- cgit v1.1-26-g67d0