public override void Initialize(Actor data) { base.Initialize(data); Modules.Abilitiable.TryGetAbility(out _overheatAbility); CheckBuilder = new AbilityPredicateBuilder(data) { AllowSelf = false, Teamable = TeamableChecker.NonAllyOnly(Modules.Teamable), Cooldown = new Cooldown(_cooldown), MagicCost = new MagicCost(Modules.Magicable, _manaCost), }; View = new SimpleAbilityView { Cooldown = CheckBuilder.Cooldown, StatCost = CheckBuilder.MagicCost, Icon = _icon, }; CastRange = new CastRange(data.transform) { MaxDistance = _castRange }; CheckBuilder.RebuildChecks(); Register(data); _ticks = new List <TickAction>(); }
#pragma warning restore 0649 public override void Initialize(Actor data) { base.Initialize(data); Checker = new AbilityPredicateBuilder(data) { Cooldown = new Cooldown(_cooldown), MagicCost = new MagicCost(Modules.Magicable, _manaCost), Teamable = TeamableChecker.NonAllyOnly(Modules.Teamable) }; View = new SimpleAbilityView() { Cooldown = Checker.Cooldown, StatCost = Checker.MagicCost, Icon = _icon, }; CastRange = new CastRange(data.transform) { MaxDistance = _castRange }; Checker.RebuildChecks(); Register(data); }
public override void ConfirmCast() { if (!CheckBuilder.AllowCast()) { return; } if (!AbilityHelper.TryRaycastActor(out var actor)) { return; } if (!CastRange.InRange(actor)) { return; } if (!CheckBuilder.AllowTarget(actor)) { return; } if (!AbilityHelper.AllowSpellTargets(actor)) { return; } if (!AbilityHelper.HasModule <IDamageable>(actor.gameObject)) { return; } CheckBuilder.DoCast(); CastObjectTarget(actor); Modules.Abilitiable.NotifyAbilityCast(new AbilityEventArgs(Self, CheckBuilder.MagicCost.Cost)); }