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));
 }
Exemple #5
0
 public void OnAutoEvaded(AutoEvadedEventArgs e)
 {
     AutoEvaded?.Invoke(this, e);
 }