public AbilityPredicateBuilder(Actor self) { Self = self; TargetCheck = new PredicateChecker <Actor>(); CastingCheck = new PredicateChecker(); CastActions = new Action[0]; }
private void RebuildUniversalCheck() { var preds = new List <Func <bool> >(); if (Cooldown != null) { var p = SimpleAbilityPreciates.IsDone(Cooldown); preds.Add(p); } if (MagicCost != null) { preds.Add(MagicCost.CanSpendCost); } CastingCheck = new PredicateChecker(preds.ToArray()); }
private void RebuildActorCheck() { var preds = new List <Func <Actor, bool> >(); if (AllowSelf) { var p = SimpleAbilityPreciates.IsSelf(Self); preds.Add(p); } if (CastRange != null) { preds.Add(CastRange.InRange); } if (Teamable != null) { preds.Add(Teamable.IsAllowed); } TargetCheck = new PredicateChecker <Actor>(preds.ToArray()); }