protected void PrintAutoEvadedMessage(object sender, AutoEvadedEventArgs e) { string displayName = e.Evader.DisplayName; string counterText = e.AlsoCountered ? " and countered" : ""; string output = $"{displayName} evaded the attack{counterText}!"; _output.WriteLine(output); }
public void AutoEvadeStatus_CorrectlyRaisesEvadeEvent_WhenEvaded() { _humanFighter.AddStatus(_evadeButDoNotCounterStatus); _logger.Subscribe(_humanFighter, EventType.AutoEvaded, EventType.EnemyAttackCountered); _humanFighter.SetMove(_doNothing, 1); _humanFighter.SetMove(_runawayMove); _enemy.SetMove(_basicAttackMove); _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(1, logs.Count); Assert.AreEqual(EventType.AutoEvaded, logs[0].Type); AutoEvadedEventArgs e = logs[0].E as AutoEvadedEventArgs; Assert.NotNull(e); Assert.IsFalse(e.AlsoCountered); }
public void AutoEvadeStatus_CorrectlyRaisesEvadeEvent_WhenEvadedAndCountered() { _humanFighter.AddStatus(_evadeAndCounterStatus); _logger.Subscribe(_humanFighter, EventType.AutoEvaded, EventType.EnemyAttackCountered); _humanFighter.SetMove(_doNothing, 1); _humanFighter.SetMove(_runawayMove); _enemy.SetMove(_basicAttackMove); _chanceService.PushEventsOccur(true, false); //attack hits, not a crit _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(1, logs.Count); Assert.AreEqual(EventType.AutoEvaded, logs[0].Type); AutoEvadedEventArgs e = logs[0].E as AutoEvadedEventArgs; Assert.NotNull(e); Assert.IsTrue(e.AlsoCountered); }
private void _logAutoEvaded(object sender, AutoEvadedEventArgs e) { Logs.Add(new EventLog(EventType.AutoEvaded, sender, e)); }
public void OnAutoEvaded(AutoEvadedEventArgs e) { AutoEvaded?.Invoke(this, e); }