public void DamageDoesntChangeHealth(int damage, Weapon source)
        {
            var ameer = new Ameer();

            ameer.Damage(damage, source);
            Assert.That(ameer.CurrentHealth, Is.EqualTo(ameer.TotalHealth));
        }
        public void DamageStunsIfSourceIsZapper()
        {
            var ameer = new Ameer();

            ameer.Damage(0, Weapon.Zapper);
            Assert.That(ameer.IsStunned);
            Assert.That(ameer.turnsLeftStunned, Is.GreaterThan(0));
        }
        public void AmeerIsNotStunnedIfTrunsStunnedIsZero()
        {
            var ameer = new Ameer();

            Assert.That(ameer.turnsLeftStunned, Is.Zero);
            Assert.That(ameer.IsStunned, Is.False);
            Assert.That(ameer.CanMove);
        }
        public void AmeerIsStunnedIfTurnsStunnedAreNonZero(int turnsStunned)
        {
            var ameer = new Ameer();

            ameer.turnsLeftStunned = turnsStunned;
            Assert.That(ameer.IsStunned);
            Assert.That(ameer.CanMove, Is.False);
        }
        public void AmeerDiesIfTouchedByQuantumPlasma(int damage)
        {
            object whoDied = null;

            EventBus.Instance.AddListener(GameEvent.EntityDeath, (data) => whoDied = data);
            var ameer = new Ameer();

            ameer.Damage(damage, Weapon.QuantumPlasma);

            Assert.That(ameer.CurrentHealth, Is.LessThanOrEqualTo(0));
            Assert.That(whoDied, Is.EqualTo(ameer));
        }
        public void OnPlayerMovedDecrementsTurnsStunned()
        {
            var ameer = new Ameer();

            ameer.turnsLeftStunned = 2;

            ameer.OnPlayerMoved();
            Assert.That(ameer.turnsLeftStunned, Is.EqualTo(1));

            ameer.OnPlayerMoved();
            Assert.That(ameer.turnsLeftStunned, Is.EqualTo(0));
            Assert.That(ameer.IsStunned, Is.False);
            Assert.That(ameer.CanMove);
        }