public void PickUpItem_ThatIsUnique_ItShouldNotBePickedUpIfThePlayerAlreadyHasIt() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); player.PickUpItem(ItemBuilder.Build.WithId(100)); Item uniqueItem = ItemBuilder.Build.WithId(100).IsUnique(true); // Act var result = player.PickUpItem(uniqueItem); // Assert result.Should().BeFalse(); }
public void PickUpItem_ThatIsUnique_ItShouldNotBePickedUpIfThePlayerAlreadyHasIt() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); player.PickUpItem(ItemBuilder.Build.WithId(100)); Item uniqueItem = ItemBuilder.Build.WithId(100).IsUnique(true); // Act var result = player.PickUpItem(uniqueItem); // Assert result.Should().BeFalse(); }
public void PickUpItem_ThatIsRare_ASpecialEffectShouldBePlayed() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); Item rareItem = ItemBuilder.Build.IsRare(true); // Act player.PickUpItem(rareItem); // Assert _engine.Received().PlaySpecialEffect("cool_swirly_particles"); }
public void PickUpItem_ThatIsRareAndUnique_ASpecialEffectShouldBePlayed() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); Item iSRareAndUnique = ItemBuilder.Build.IsRare(true).IsUnique(true); // Act player.PickUpItem(iSRareAndUnique); // Assert _engine.Received().PlaySpecialEffect("blue_swirly"); }
public void PickUpItem_ThatIsTooHeavy_TheItemIsNotPickedUp() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); var inventory = new PlayerInventory(_engine, MaximumCarryingCapacity); Item heavyItem = ItemBuilder.Build.WithWeight(inventory.CarryingCapacity + 1); // Act var result = player.PickUpItem(heavyItem); // Assert result.Should().BeFalse(); }
public void PickUpItem_ThatDoesMoreThan500Healing_AnExtraGreenSwirlyEffectOccurs() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); Item xPotion = ItemBuilder.Build.WithHeal(501); // Act player.PickUpItem(xPotion); player.CalculateHealth(xPotion); // Assert _engine.Received().PlaySpecialEffect("green_swirly"); }
public void PickUpItem_ThatDoesMoreThan500Healing_AnExtraGreenSwirlyEffectOccurs() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); Item xPotion = ItemBuilder.Build.WithHeal(501); // Act player.PickUpItem(xPotion); // Assert engine.Received().PlaySpecialEffect("green_swirly"); }
public void PickUpItem_ThatIsRare_ASpecialEffectShouldBePlayed() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); Item rareItem = ItemBuilder.Build.IsRare(true); // Act player.PickUpItem(rareItem); // Assert engine.Received().PlaySpecialEffect("cool_swirly_particles"); }
public void PickUpItem_ThatIsTooHeavy_TheItemIsNotPickedUp() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); Item heavyItem = ItemBuilder.Build.WithWeight(player.CarryingCapacity + 1); // Act var result = player.PickUpItem(heavyItem); // Assert result.Should().BeFalse(); }
public void PickUpItem_ThatGivesArmour_ThePlayersArmourValueShouldBeIncreased() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); player.Armour.Should().Be(0); Item armour = ItemBuilder.Build.WithArmour(100); // Act player.PickUpItem(armour); player.CalculateStats(); // Assert player.Armour.Should().Be(100); }
public void PickUpItem_ThatCanBePickedUp_ItIsAddedToTheInventory() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); Item item = ItemBuilder.Build; player.Inventory.Should().BeEmpty(); // Act player.PickUpItem(item); // Assert player.Inventory.Should().Contain(item); }
public void PickUpItem_ThatCanBePickedUp_ItIsAddedToTheInventory() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect); Item item = ItemBuilder.Build; //Act var items = _playerInventory.GetItems(); // Assert Assert.Empty(items); // Act player.PickUpItem(item); // Assert Assert.True(_playerInventory.CheckIfItemExistsInInventory(item)); }
public void TakeDamage_WithMoreArmourThanDamage_NoDamageIsDealtAndParryEffectIsPlayed() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect) { Health = 200 }; player.PickUpItem(ItemBuilder.Build.WithArmour(2000)); player.CalculateStats(); // Act player.TakeDamage(100); // Assert player.Health.Should().Be(200); _engine.Received().PlaySpecialEffect("parry"); }
public void PickUpItem_ThatGivesArmour_ThePlayersArmourValueShouldBeIncreased() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine); player.Armour.Should().Be(0); Item armour = ItemBuilder.Build.WithArmour(100); // Act player.PickUpItem(armour); // Assert player.Armour.Should().Be(100); }
public void TakeDamage_With50Armour_DamageIsReducedBy50AndParticleEffectIsShown() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect) { Health = 200 }; player.PickUpItem(ItemBuilder.Build.WithArmour(50)); player.CalculateStats(); // Act player.TakeDamage(100); // Assert player.Health.Should().Be(150); _specialEffect.PlaySpecialEffect(null); _engine.Received().PlaySpecialEffect("lots_of_gore"); }
public void TakeDamage_WithMoreArmourThanDamage_NoDamageIsDealtAndParryEffectIsPlayed() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { Health = 200 }; player.PickUpItem(ItemBuilder.Build.WithArmour(2000)); // Act player.TakeDamage(100); // Assert player.Health.Should().Be(200); engine.Received().PlaySpecialEffect("parry"); }
public void TakeDamage_With50Armour_DamageIsReducedBy50AndParticleEffectIsShown() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { Health = 200 }; player.PickUpItem(ItemBuilder.Build.WithArmour(50)); // Act player.TakeDamage(100); // Assert player.Health.Should().Be(150); engine.Received().PlaySpecialEffect("lots_of_gore"); }
public void PickUpItem_ThatGivesHealth_HealthDoesNotExceedMaxHealth() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { MaxHealth = 50, Health = 10 }; Item healthPotion = ItemBuilder.Build.WithHeal(100); // Act player.PickUpItem(healthPotion); // Assert player.Inventory.Should().BeEmpty(); player.Health.Should().Be(50); }
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); }