public void Bloodrager_can_equip_two_weapons() { // Arrange var context = new TestContext(); var bloodrager = context.CreateCard<Disowned>("Disowned Bloodrager"); var weapon1 = context.CreateCard<Pike>(); var weapon2 = context.CreateCard<SnakeheadFlail>(); context.SetPlayerHand(bloodrager, weapon1, weapon2); context.SetPlayerState(Phase.Dungeon); // Act context.HeroEquipsWeapon(bloodrager, weapon1); context.HeroEquipsWeapon(bloodrager, weapon2); // Assert Assert.That(bloodrager.IsEquipped, Is.True); Assert.That(bloodrager.GetEquipped(), Is.EquivalentTo(new[] {weapon1, weapon2})); Assert.That(weapon1.IsEquipped, Is.True); Assert.That(weapon2.IsEquipped, Is.True); Assert.That(bloodrager.TotalAttack, Is.EqualTo(14)); }
public void A_hero_armed_with_a_pike_is_immune_to_battle_effects() { // Arrange var context = new TestContext(); var player = context.Player; var hero = context.CreateCard<Criochan>(); var pike = context.CreateCard<Pike>(); context.SetPlayerHand(hero, pike); var ettin = context.SetMonsterInFirstRank<OgreHumanoid>("Ettin"); // Act context.HeroEquipsWeapon(hero, pike); context.WhenBattling(ettin); // Assert Assert.That(player.Hand, Has.Member(hero), "Pike should protect hero from Ettin."); }
public void When_removing_equipped_weapon_from_hand_then_hero_loses_modifier() { // Arrange var context = new TestContext(); var player = context.Player; var regular = context.CreateBasicCard<Regular>(); var spear = context.CreateBasicCard<Longspear>(); context.SetPlayerHand(regular, spear); context.SetPlayerState(Phase.Dungeon, Phase.Equip); context.HeroEquipsWeapon(regular, spear); // Act player.RemoveFromHand(spear); // Assert Assert.That(regular.PhysicalAttack, Is.EqualTo(1)); player.View.AssertWasCalled(x => x.Log("Regular no longer has Longspear equipped.")); }
public void Bloodrager_returns_to_top_of_deck_during_aftermath() { // Arrange var context = new TestContext(); var bloodrager = context.CreateCard<Disowned>("Disowned Bloodrager"); var weapon = context.CreateCard<Pike>(); context.SetPlayerHand(bloodrager, weapon); context.HeroEquipsWeapon(bloodrager,weapon); context.SetPlayerState(Phase.Aftermath); // Act context.UseAbilityOf(bloodrager); // Assert Assert.That(context.Player.Hand, Is.EquivalentTo(new[] {weapon})); Assert.That(context.Player.Deck.TopCard, Is.SameAs(bloodrager)); Assert.That(bloodrager.TotalAttack, Is.EqualTo(bloodrager.GetBaseValue(Attr.PhysicalAttack))); }
public void Pike_only_protects_the_hero_that_has_it_equipped() { // Arrange var context = new TestContext(); var player = context.Player; var equippedHero = context.CreateCard<Criochan>(); var unequippedHero = context.CreateCard<Criochan>(); var pike = context.CreateCard<Pike>(); context.SetPlayerHand(equippedHero, pike); var ettin = context.SetMonsterInFirstRank<OgreHumanoid>("Ettin"); // Act context.HeroEquipsWeapon(equippedHero, pike); context.WhenBattling(ettin); // Assert Assert.That(player.Hand, Has.Member(equippedHero), "Pike should protect hero from Ettin."); Assert.That(player.Hand, Has.No.Member(unequippedHero), "Ettin eats unequipped hero."); }
public void Pike_does_not_protect_from_non_battle_effects() { // Arrange var context = new TestContext(); var player = context.Player; var hero = context.CreateBasicCard<Regular>(); var pike = context.CreateCard<Pike>(); context.SetPlayerHand(hero, pike); var ogre = context.SetMonsterInFirstRank<OgreHumanoid>("Ogre"); // Act context.HeroEquipsWeapon(hero, pike); context.SetPlayerState(Phase.Aftermath); player.OnSelectMonster(ogre); context.UseAbilityOf(ogre); // Assert Assert.That(player.Hand, Has.No.Member(hero), "Pike should not protect hero from Ogre."); }