Beispiel #1
0
        public AbilityInstance Cast(AbilityCaster caster)
        {
            if (CurrentCooldown <= 0)
            {
                EventHandler[] targets = null;

                // If the Ability targets at start, search for targets
                if (Template.Targeting.TargetAtStart)
                {
                    targets = _template.Targeting.GetTargets(caster);
                }
                if (!Template.Targeting.TargetAtStart || HasValidTarget(targets))
                {
                    AbilityInstance instance = AbilityInstance.Cast(this, caster, targets, new AbilityData(Data));

                    CurrentCooldown = Cooldown;

                    if (caster.Animator != null)
                    {
                        caster.Animator.SetTrigger(_template.AnimationName);
                    }

                    return(instance);
                }
            }
            return(null);
        }
        public static AbilityInstance Cast(Ability originAbility, AbilityCaster caster,
                                           EventHandler[] targets, AbilityData data)
        {
            AbilityInstance instance = new AbilityInstance(originAbility, caster, targets, data);

            instance.Start();
            return(instance);
        }
Beispiel #3
0
 public bool CastAbility(int abilityIndex)
 {
     if (CanCastSpell(abilityIndex))
     {
         _abilityBeingCast = Abilities[abilityIndex].Cast(this);
         return(true);
     }
     return(false);
 }
Beispiel #4
0
 public bool CompleteAbility()
 {
     if (_abilityBeingCast != null)
     {
         _abilityBeingCast.Complete();
         _abilityBeingCast = null;
         return(true);
     }
     return(false);
 }
Beispiel #5
0
 public AbilityInstance Complete(AbilityInstance instance)
 {
     instance.Complete();
     return(instance);
 }