public int RaiseStat(StatType statType, int amount) { switch (statType) { case StatType.Strength: Strength += amount; break; case StatType.Defense: Defense += amount; break; case StatType.Speed: Speed += amount; break; case StatType.Evade: Evade += amount; break; case StatType.Luck: Luck += amount; break; default: throw new ArgumentOutOfRangeException(nameof(statType), statType, "Unrecognized statType value given to Fighter.RaiseStat()"); } StatRaisedEventArgs e = new StatRaisedEventArgs(statType, amount); OnStatRaised(e); return(GetStatValue(statType)); }
public void MessageDisplayed_OnStatIncrease([Values] StatType raisedStat, [Range(1, 5)] int boostAmount) { //arrange _humanPlayer1.SetMove(_doNothingMove); _humanPlayer2.SetMove(_doNothingMove); _humanTeam.SetDeathsOnRoundEndEvent(); _enemyPlayer1.SetMove(_doNothingMove); _enemyPlayer2.SetMove(_doNothingMove); StatRaisedEventArgs e = new StatRaisedEventArgs(raisedStat, boostAmount); _humanPlayer1.TurnEnded += delegate { _humanPlayer1.OnStatRaised(e); }; //Act _battleManager.Battle(_humanTeam, _enemyTeam); //Assert MockOutputMessage[] outputs = _output.GetOutputs(); string statTypeString = raisedStat == StatType.Evade ? "evasion" : raisedStat.ToString().ToLower(); string expectedMessage = $"{_humanPlayer1.DisplayName}'s {statTypeString} was raised by {boostAmount}!\n"; MockOutputMessage output = outputs.FirstOrDefault(o => o.Message == expectedMessage); Assert.NotNull(output); }
protected void PrintStatRaisedMessage(object sender, StatRaisedEventArgs e) { IFighter senderAsFighter = sender as IFighter; if (senderAsFighter == null) { throw new ArgumentException("BattleManagerScreenOutputs.PrintStatRaisedMessage should subscribe to IFighters and nothing else"); } StatType raisedStat = e.RaisedStat; string statTypeString = raisedStat == StatType.Evade ? "evasion" : raisedStat.ToString().ToLower(); string expectedMessage = $"{senderAsFighter.DisplayName}'s {statTypeString} was raised by {e.BoostAmount}!"; _output.WriteLine(expectedMessage); }
private void _logStatRaised(object sender, StatRaisedEventArgs e) { Logs.Add(new EventLog(EventType.StatRaised, sender, e)); }
public void OnStatRaised(StatRaisedEventArgs e) { StatRaised?.Invoke(this, e); }