Beispiel #1
0
        public void UseItem_StinkBomb_AllEnemiesNearThePlayerAreDamaged()
        {
            // Arrange
            var engine = Substitute.For <IGameEngine>();
            var player = new RpgPlayer(engine);
            var enemy  = Substitute.For <IEnemy>();

            Item item = ItemBuilder.Build.WithName("Stink Bomb");

            engine.GetEnemiesNear(player).Returns(new List <IEnemy> {
                enemy
            });

            // Act
            player.UseItem(item);

            // Assert
            enemy.Received().TakeDamage(100);
        }
Beispiel #2
0
        public void PickUpItem_ThatGivesHealth_HealthDoesNotExceedMaxHealth()
        {
            // Arrange
            var player = new RpgPlayer(_engine, _playerInventory, _specialEffect)
            {
                MaxHealth = 50,
                Health    = 10
            };

            Item healthPotion = ItemBuilder.Build.WithHeal(100);

            // Act
            player.PickUpItem(healthPotion);
            player.CalculateHealth(healthPotion);
            //Act
            var items = _playerInventory.GetItems();

            // Assert
            Assert.Empty(items);
            player.Health.Should().Be(50);
        }
Beispiel #3
0
        public void TakeDamage_25PercentWhenCarryingCapacityIsHalf()
        {
            // Arrange
            int health       = 100;
            var engine       = Substitute.For <IGameEngine>();
            var itemsService = new Items(engine);
            var player       = new RpgPlayer(engine)
            {
                Health = health
            };

            Item item = ItemBuilder.Build.ReduceCapcity(true);

            // Act
            itemsService.PickUpItem(item);
            player.TakeDamage(health / 100 * 25);

            // Assert
            itemsService.CarryingCapacity.Should().Be(500);
            // 25% damage to health
            player.Health.Should().Be(health - (health / 100 * 25));
        }
Beispiel #4
0
 public override string AttackEffects(RpgPlayer wielder, Entity target)
 {
     target.Defense /= 2;
     return("");
 }
Beispiel #5
0
 public override void EquipEffects(RpgPlayer player)
 {
     base.EquipEffects(player);
     player.Defense += 2;
 }
Beispiel #6
0
 void Awake()
 {
     //get the component
     rig    = GetComponent <Rigidbody2D>();
     player = FindObjectOfType <RpgPlayer>();
 }
Beispiel #7
0
 /// <summary>Additional effects this weapon has when used.</summary>
 public virtual string AttackEffects(RpgPlayer wielder, Entity target) => "";
Beispiel #8
0
 public override void EquipEffects(RpgPlayer player)
 {
     player.Damage  += 1;
     player.Defense += 2;
 }
Beispiel #9
0
 /// <summary>Passive effects applied constantly to the player wearing this item.</summary>
 public virtual void EquipEffects(RpgPlayer player)
 {
 }
Beispiel #10
0
 public override void EquipEffects(RpgPlayer player)
 {
     player.DamageBoost.ChangeOrSet(DamageType.Magic, x => x + 4);
     player.Defense += 2;
     player.MaxMana += 2;
 }
Beispiel #11
0
 public override void EquipEffects(RpgPlayer player)
 {
     player.DamageBoost.ChangeOrSet(DamageType.Pierce, x => x + 4);
     player.Defense    += 3;
     player.CritChance += 0.06;
 }
Beispiel #12
0
 public override void EquipEffects(RpgPlayer player)
 {
     player.DamageBoost.ChangeOrSet(DamageType.Cutting, x => x + 3);
     player.Defense    += 3;
     player.DamageMult += 0.1;
 }
Beispiel #13
0
 public override void EquipEffects(RpgPlayer player)
 {
     player.DamageBoost.ChangeOrSet(DamageType.Blunt, x => x + 2);
     player.Defense     += 4;
     player.DefenseMult += 0.1;
 }
Beispiel #14
0
 public void Setup()
 {
     Engine = new Mock <IGameEngine>();
     Player = new RpgPlayer(Engine.Object);
 }