Exemple #1
0
        private void apply_damage(ApplyHitAttackResultCommand command)
        {
            ApplyDamageResultListCommand _command = new ApplyDamageResultListCommand(command.HitAttackResult.Target, command.HitAttackResult.DamageList);

            _mediator.Value.Execute(_command);

            _command.AddToInnerCommands(_command);
        }
        public void Basic()
        {
            ApplyDamageResultListCommand command = new ApplyDamageResultListCommand(_character, _damage);

            _mediator.Execute(command);
            Assert.AreEqual(25, _character.Hp);

            _mediator.Undo(command);
            Assert.AreEqual(50, _character.Hp);
        }
        public void Resistance()
        {
            _damage.Elements[0].AffinityModifier = DamageAffinityEnum.Resistant;

            ApplyDamageResultListCommand command = new ApplyDamageResultListCommand(_character, _damage);

            _mediator.Execute(command);
            Assert.AreEqual(30, _character.Hp);

            _mediator.Undo(command);
            Assert.AreEqual(50, _character.Hp);
        }
        public void NegativeDamage()
        {
            _damage.Elements[0].Damage.LastRoll = -20;

            ApplyDamageResultListCommand command = new ApplyDamageResultListCommand(_character, _damage, true);

            _mediator.Execute(command);
            Assert.AreEqual(35, _character.Hp);

            _mediator.Undo(command);
            Assert.AreEqual(50, _character.Hp);
        }
        public void Cancel_WithSaving()
        {
            _damage.Elements[0].SituationalDamageModifier = DamageModifierEnum.Canceled;

            ApplyDamageResultListCommand command = new ApplyDamageResultListCommand(_character, _damage, true);

            _mediator.Execute(command);
            Assert.AreEqual(35, _character.Hp);

            _mediator.Undo(command);
            Assert.AreEqual(50, _character.Hp);
        }
        public void ReturnValue()
        {
            _damage.Elements[0].AffinityModifier = DamageAffinityEnum.Resistant;
            ApplyDamageResultListCommand command = new ApplyDamageResultListCommand(_character, _damage);

            ApplyDamageResultListResponse response = _mediator.Execute(command) as ApplyDamageResultListResponse;

            Assert.AreEqual(30, _character.Hp);
            Assert.AreEqual(20, response.Amount);

            _mediator.Undo(command);
            Assert.AreEqual(50, _character.Hp);
        }