Exemplo n.º 1
0
        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>();
        }
Exemplo n.º 2
0
#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);
        }
Exemplo n.º 3
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));
        }