/// <summary> /// Expend the mana cost for the move, and applies user effects /// </summary> protected bool PerformMove(Move m) { if (m.AdditionalUserEffects.Count != 0) { foreach (PassiveEffect e in m.AdditionalUserEffects) { if (e.InitialCalculationBoolean) { if (e.IOType == PassiveEffect.ModType.Move) { SelfMoveModifiers.Add(e); } } } } Mana -= m.FlatManaCost; Speed -= m.FlatSpeedCost; double chance = 1; chance = SelfMoveModifiers.Calculate(chance); if (FighterRNG.NextDouble() > chance) { return(false); } return(true); }