public void TakeDamage_IsReducedBy25Percent_IfCarrying50PercentOfTheMaximumCapacity() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect) { Health = 100, CarryingCapacity = 490 }; // Act player.TakeDamage(100); // Assert player.Health.Should().Be(25); }
public void TakeDamage_WithNoArmour_HealthIsReducedAndParticleEffectIsShown() { // Arrange var player = new RpgPlayer(_engine, _playerInventory, _specialEffect) { Health = 200 }; // Act player.TakeDamage(100); // Assert player.Health.Should().Be(100); _specialEffect.PlaySpecialEffect(null); _engine.Received().PlaySpecialEffect("lots_of_gore"); }
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 TakeDamage_WithMoreArmourThanDamage_NoDamageIsDealtAndParryEffectIsPlayed() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { Health = 200, Armour = 2000 }; // Act player.TakeDamage(100); // Assert player.Health.Should().Be(200); engine.Received().PlaySpecialEffect(Effects.Parry); }
public void TakeDamage_With50Armour_DamageIsReducedBy50AndParticleEffectIsShown() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { Health = 200, Armour = 50 }; // Act player.TakeDamage(100); // Assert player.Health.Should().Be(150); engine.Received().PlaySpecialEffect(Effects.LotsOfGore); }
public void TakeDamage_WithNoArmour_HealthIsReducedAndParticleEffectIsShown() { // Arrange var engine = Substitute.For <IGameEngine>(); var player = new RpgPlayer(engine) { Health = 200 }; // Act player.TakeDamage(100); // Assert player.Health.Should().Be(100); engine.Received().PlaySpecialEffect("lots_of_gore"); }
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 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)); }
void Attack() { lastAttackTime = Time.time; player.TakeDamage(damage); }