public SubtractPlayerLife(Player player, int amount, bool ignoreModifiers, ICause cause) : base(cause) { if (player == null) { throw new ArgumentNullException("player"); } else if (amount < 0) { throw new ArgumentOutOfRangeException("amount", "Amount must be greater than or equal to zero."); } Player = player; Amount = amount; FinalAmount = ignoreModifiers ? amount : player.CalculateFinalLifeSubtract(amount); }