Ejemplo n.º 1
0
 public void ActivateAbility(Fighter target, Ability ability)
 {
     if (!Abilities.Contains(ability))
     {
         throw new ArgumentException("Wrong ability!");
     }
     if (ability.ManaCost > mana)
     {
         return;
     }
     mana -= ability.ManaCost;
     if (ability.ManaCost != 0)
     {
         ManaChanged?.Invoke(this);
     }
     ability.ApplyAbility(this, target);
 }
Ejemplo n.º 2
0
        protected override void OnProcessDelta(Delta d)
        {
            base.OnProcessDelta(d);
            if (d.HasFlag(Delta.Hits))
            {
                HitsChanged.Raise(this);
            }

            if (d.HasFlag(Delta.Mana))
            {
                ManaChanged.Raise(this);
            }

            if (d.HasFlag(Delta.Stamina))
            {
                StaminaChanged.Raise(this);
            }
        }
Ejemplo n.º 3
0
        public void EndOfTheTurn()
        {
            var effectsToRemove = new List <Effect.EffectType>();

            foreach (var e in Effects)
            {
                if (Effect.EndOfTheTurnEffects.Contains(e.Key))
                {
                    e.Value.ActivateEndOfTheTurnEffect(this);
                }
                e.Value.Duration--;
                if (e.Value.Duration == 0)
                {
                    effectsToRemove.Add(e.Key);
                }
            }
            foreach (var e in effectsToRemove)
            {
                Effects.Remove(e);
            }
            mana += manaRegeneration;
            mana  = Math.Min(baseMana, mana);
            ManaChanged?.Invoke(this);
        }
Ejemplo n.º 4
0
 public void SubscribeToManaChanged(ManaChanged mc)
 {
     D_ManaChanged += mc;
 }