示例#1
0
        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));
        }