//// public bool TryApply(World.Objects.Actions.ActionProduct action, Character target) { if (!Unconditional) { foreach (var cond in GlobalConditions) { if (cond == null) { continue; } if (!cond.Verify()) { return(false); } } foreach (var cond in TargetConditions) { if (cond == null) { continue; } if (!Check(cond, target)) { return(false); } } } DoApply(action, target); return(true); }
public AbilityPersistence(AbilityResource res) { _resource = res; _cooldownTimer = new Timer(res.CooldownTime, start: false, repeat: false); _cooldownTimer.OnTimeLimitHandler += OnCooldownTimeout; _endLagTimer = new Timer(res.EndLag, start: false, repeat: false); _endLagTimer.OnTimeLimitHandler += OnEndlagTimeout; _action = res.Action.Create(); _action.OnActionFinishedHandler += OnActionFinished; }
//// public virtual bool TryApply(BaseObject source, World.Objects.Actions.ActionProduct action, World.Objects.Characters.Character target) { if (!Unconditional) { foreach (var cond in GlobalConditions) { if (cond == null) { continue; } if (!cond.Verify()) { return(false); } } foreach (var cond in TargetConditions) { if (cond == null) { continue; } if (!Check(cond, target)) { return(false); } } foreach (var cond in SourceConditions) { if (cond == null) { continue; } if (!Check(cond, source)) { return(false); } } } DoApply(source, action, target); return(true); }
////////////////////////////////////////////// //// public bool TryApply(World.Objects.Actions.ActionProduct action) { if (!Unconditional) { foreach (var cond in GlobalConditions) { if (cond == null) { continue; } if (!cond.Verify()) { return(false); } } } DoApply(action); return(true); }
protected virtual void DoApply(BaseObject source, World.Objects.Actions.ActionProduct action, World.Objects.Characters.Character target) { DoApply(source, action, target as BaseObject); }
protected virtual void DoApply(BaseObject source, World.Objects.Actions.ActionProduct action, BaseObject target) { DoApply(action, target as BaseObject); }
protected virtual void DoApply(World.Objects.Actions.ActionProduct action, BaseObject target) { DoApply(action); }
protected virtual void DoApply(World.Objects.Actions.ActionProduct action) { }
protected override void DoApply(World.Objects.Actions.ActionProduct action) { Debug.Log(_message); }