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); }
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); }
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)); }
public override string AttackEffects(RpgPlayer wielder, Entity target) { target.Defense /= 2; return(""); }
public override void EquipEffects(RpgPlayer player) { base.EquipEffects(player); player.Defense += 2; }
void Awake() { //get the component rig = GetComponent <Rigidbody2D>(); player = FindObjectOfType <RpgPlayer>(); }
/// <summary>Additional effects this weapon has when used.</summary> public virtual string AttackEffects(RpgPlayer wielder, Entity target) => "";
public override void EquipEffects(RpgPlayer player) { player.Damage += 1; player.Defense += 2; }
/// <summary>Passive effects applied constantly to the player wearing this item.</summary> public virtual void EquipEffects(RpgPlayer player) { }
public override void EquipEffects(RpgPlayer player) { player.DamageBoost.ChangeOrSet(DamageType.Magic, x => x + 4); player.Defense += 2; player.MaxMana += 2; }
public override void EquipEffects(RpgPlayer player) { player.DamageBoost.ChangeOrSet(DamageType.Pierce, x => x + 4); player.Defense += 3; player.CritChance += 0.06; }
public override void EquipEffects(RpgPlayer player) { player.DamageBoost.ChangeOrSet(DamageType.Cutting, x => x + 3); player.Defense += 3; player.DamageMult += 0.1; }
public override void EquipEffects(RpgPlayer player) { player.DamageBoost.ChangeOrSet(DamageType.Blunt, x => x + 2); player.Defense += 4; player.DefenseMult += 0.1; }
public void Setup() { Engine = new Mock <IGameEngine>(); Player = new RpgPlayer(Engine.Object); }