public void TestSetupQuest2() { QuestMatch game = ScenarioCreator.GameNoDeal(1); game.AttachLogger(new Quest.Core.Logger("TestSetupQuest2")); Player sponsorAI = game.Players[0]; sponsorAI.Behaviour = new Strategy1(); // Setup quest SearchForTheQuestingBeast quest = new SearchForTheQuestingBeast(game); // 4 stages. game.CurrentStory = quest; quest.Sponsor = sponsorAI; //cards, no test Giant giant = new Giant(game); //40 Lance lance = new Lance(game); //20 Mordred mordred = new Mordred(game); //30 Sword sword = new Sword(game); //10 Sword sword2 = new Sword(game); //10 Dagger dagger = new Dagger(game); //5 Dagger dagger2 = new Dagger(game); //5 Thieves thieves = new Thieves(game); //5 Boar boar = new Boar(game); //5 sponsorAI.Hand.Add(new List <Card>() { giant, lance, thieves, boar, mordred, dagger, dagger2, sword, sword2 }); List <AdventureCard>[] stages = sponsorAI.Behaviour.SetupQuest(quest, sponsorAI.Hand); Assert.AreEqual(4, stages.Length); //test last stage - should contain giant and lance Assert.AreEqual(2, stages[3].Count); Assert.IsTrue(stages[3].Contains(giant)); Assert.IsTrue(stages[3].Contains(lance)); //test 3rd stage - should be mordred and one of the daggers Assert.AreEqual(2, stages[2].Count); Assert.IsTrue(stages[2].Contains(mordred)); Assert.IsTrue((stages[2].Contains(dagger)) || (stages[2].Contains(dagger2))); //test 2nd stage - thieves or boar, and one of the swords Assert.AreEqual(2, stages[1].Count); Assert.IsTrue((stages[1].Contains(thieves)) || (stages[1].Contains(boar))); Assert.IsTrue((stages[1].Contains(sword)) || (stages[1].Contains(sword2))); //test 1st stage - thieves or boar (whichever wasn't played previously) Assert.AreEqual(1, stages[0].Count); Assert.IsTrue((stages[1].Contains(thieves)) || (stages[1].Contains(boar))); }
public void TestQuestSponsoring() { QuestMatch game = ScenarioCreator.GameNoDeal(2); game.AttachLogger(new Quest.Core.Logger("TestQuestSponsoring")); Player aiPlayer = game.Players[0]; aiPlayer.Behaviour = new Strategy1(); Player otherPlayer = game.Players[1]; RescueTheFairMaiden quest = new RescueTheFairMaiden(game); // 3 Stages with bonus to Black Knight. game.CurrentStory = quest; // Test case where another player can win. //(conditions for whether or not to sponsor quest is same as strategy 2) otherPlayer.Rank.AddShields(21); Assert.IsFalse(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); otherPlayer.Rank.RemoveShields(10); //quest cards Dragon dragon = new Dragon(game); //50 BlackKnight blackKnight = new BlackKnight(game); //35 (25+10) Mordred mordred = new Mordred(game); //30 Thieves thieves = new Thieves(game); //5 Boar boar = new Boar(game); //5 Lance lance = new Lance(game); //20 Sword sword = new Sword(game); //10 Dagger dagger = new Dagger(game); //5 aiPlayer.Hand.Add(new TestOfValor(game)); aiPlayer.Hand.Add(boar); aiPlayer.Hand.Add(thieves); //hand: boar, thieves, testOfValor - not enough bp Assert.IsFalse(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); aiPlayer.Hand.Add(blackKnight); aiPlayer.Hand.Add(lance); //hand: boar, thieves, test, blackknight, lance - enough bp Assert.IsTrue(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); aiPlayer.Hand.Remove(boar); aiPlayer.Hand.Remove(thieves); aiPlayer.Hand.Remove(lance); aiPlayer.Hand.Add(dragon); //hand: black knight, test, lance, dragon - enough bp //(last stage dragon, 2nd stage test, first black knight (no lance)) Assert.IsTrue(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); }
public void TestQuestSponsoring() { QuestMatch game = ScenarioCreator.GameNoDeal(2); game.AttachLogger(new Quest.Core.Logger("TestQuestSponsoring")); Player aiPlayer = game.Players[0]; aiPlayer.Behaviour = new Strategy2(); Player winningPlayer = game.Players[1]; RescueTheFairMaiden quest = new RescueTheFairMaiden(game); // 3 Stages with bonus to Black Knight. game.CurrentStory = quest; // Test case where another player can win. winningPlayer.Rank.AddShields(21); Assert.IsFalse(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); winningPlayer.Rank.RemoveShields(10); // Test cards. Boar boar = new Boar(game); // 5 BP Thieves thieves = new Thieves(game); // 5 BP BlackKnight blackKnight = new BlackKnight(game); // Should be worth 35 BP, not 25. GreenKnight greenKnight = new GreenKnight(game); Mordred mordred = new Mordred(game); // 30 BP. Lance lance = new Lance(game); // +20 BP. // Ensure having a test card is taken into consideration for the next tests. aiPlayer.Hand.Add(new TestOfValor(game)); // First case, not enough battle points in second stage, expect false. aiPlayer.Hand.Add(boar); aiPlayer.Hand.Add(thieves); Assert.IsFalse(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); // Add weapon, expect true. aiPlayer.Hand.Add(lance); Assert.IsTrue(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); aiPlayer.Hand.Remove(lance); aiPlayer.Hand.Remove(boar); aiPlayer.Hand.Remove(thieves); // Green knight and black knight test, black night quest bonuse should be considered, expect true. aiPlayer.Hand.Add(blackKnight); aiPlayer.Hand.Add(greenKnight); Assert.IsTrue(aiPlayer.Behaviour.SponsorQuest(quest, aiPlayer.Hand)); }
public void TestSetupTest() { QuestMatch game = ScenarioCreator.GameNoDeal(1); game.AttachLogger(new Quest.Core.Logger("TestSetupQuest")); Player sponsorAI = game.Players[0]; sponsorAI.Behaviour = new Strategy2(); // Setup quest SearchForTheQuestingBeast quest = new SearchForTheQuestingBeast(game); // 4 stages. game.CurrentStory = quest; quest.Sponsor = sponsorAI; // Test cards. TestOfTemptation testOfTemptation = new TestOfTemptation(game); // Play second last (stage 3). Boar boar = new Boar(game); // 5 BP. Saxons saxons = new Saxons(game); // 10 BP. Mordred mordred = new Mordred(game); // 40 BP, played last stage. Sword sword = new Sword(game); // 10 BP, played last stage. sponsorAI.Hand.Add(new List <Card>() { testOfTemptation, boar, saxons, mordred, sword }); List <AdventureCard>[] stages = sponsorAI.Behaviour.SetupQuest(quest, sponsorAI.Hand); Assert.AreEqual(4, stages.Length); // Validate stage 1. Assert.AreEqual(1, stages[0].Count); Assert.IsTrue(stages[0].Contains(boar)); // Validate stage 2. Assert.AreEqual(1, stages[1].Count); Assert.IsTrue(stages[1].Contains(saxons)); // Validate stage 3. Assert.AreEqual(1, stages[2].Count); Assert.IsTrue(stages[2].Contains(testOfTemptation)); // Validate stage 4. Assert.AreEqual(2, stages[3].Count); Assert.IsTrue(stages[3].Contains(mordred)); Assert.IsTrue(stages[3].Contains(sword)); }
public void TestQuestParticipation() { QuestMatch game = ScenarioCreator.GameNoDeal(1); game.AttachLogger(new Quest.Core.Logger("TestQuestParticipation")); Player aiPlayer = game.Players[0]; aiPlayer.Behaviour = new Strategy1(); RescueTheFairMaiden quest = new RescueTheFairMaiden(game); // 3 stages. game.CurrentStory = quest; //cards Lance lance = new Lance(game); //20 Dagger dagger = new Dagger(game); //5 Sword sword = new Sword(game); //10 SirGalahad sirGalahad = new SirGalahad(game); //15 SirLancelot sirLancelot = new SirLancelot(game); //15 KingPellinore kingPellinore = new KingPellinore(game); //10 Mordred mordred = new Mordred(game); //30 Thieves thieves = new Thieves(game); //5 Boar boar = new Boar(game); //5 aiPlayer.Hand.Add(lance); aiPlayer.Hand.Add(dagger); aiPlayer.Hand.Add(sword); aiPlayer.Hand.Add(sirGalahad); aiPlayer.Hand.Add(boar); aiPlayer.Hand.Add(thieves); //hand: lance, dagger, sword, galahad, boar, thieves - not enough weapon/allies Assert.IsFalse(aiPlayer.Behaviour.ParticipateInQuest(quest, aiPlayer.Hand)); aiPlayer.Hand.Add(sirLancelot); aiPlayer.Hand.Add(kingPellinore); //hand: lance, dagger, sword, galahad, lancelot, pelinore, boar, thieves Assert.IsTrue(aiPlayer.Behaviour.ParticipateInQuest(quest, aiPlayer.Hand)); aiPlayer.Hand.Remove(thieves); //not enough foes (to discard) Assert.IsFalse(aiPlayer.Behaviour.ParticipateInQuest(quest, aiPlayer.Hand)); //2 foes, but mordred has too much bp aiPlayer.Hand.Add(mordred); Assert.IsFalse(aiPlayer.Behaviour.ParticipateInQuest(quest, aiPlayer.Hand)); }