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)); }