Ejemplo n.º 1
0
 public void ExecuteOnCanalise()
 {
     if (Flags.HasFlag(SpellFlags.CANALISED))
     {
         OnCanalise(this);
     }
 }
Ejemplo n.º 2
0
        public Spell(string name, string desc, SpellFlags flags, float duration, float castTime, float cooldown, float costBloodCast, float costPhlegmCast, float costYBCast, float costBBCast, float costBloodCanalise, float costPhlegmCanalise, float costYBCanalise, float costBBCanalise, Action <SpellInstance> onCast, Action <SpellInstance> onCanalisation, Action <SpellInstance> onEnd, Action <SpellInstance> onCancel)
        {
            ID       = 0;
            IDSet    = false;
            Flags    = flags;
            CastTime = castTime;
            Duration = duration;

            if (Duration < CastTime)
            {
                Duration = CastTime;
            }
            if (!Flags.HasFlag(SpellFlags.CANALISED)) // Si ce sort n'est pas canalisé, alors les actions OnCanalisation, OnEnd et OnCancel ne seront jamais exécutées.
            {
                onCanalisation     = null;
                onEnd              = null;
                onCancel           = null;
                costBloodCanalise  = 0;
                costPhlegmCanalise = 0;
                costYBCanalise     = 0;
                costBBCanalise     = 0;
            }

            OnCast         = onCast;
            OnCanalisation = onCanalisation;
            OnEnd          = onEnd;
            OnCancel       = onCancel;

            Name = name;
            Desc = desc;

            OnCastCosts     = new float[] { costBloodCast, costPhlegmCast, costYBCast, costBBCast };
            OnCanaliseCosts = new float[] { costBloodCanalise, costPhlegmCanalise, costYBCanalise, costBBCanalise };
            Cooldown        = cooldown;
        }