public void Episode_StartGameWithDeckTestMethod1() { //開始一場空的遊戲 雙方牌組都依序放置1~6號卡1張 輪到1號玩家 玩家1換手牌 玩家2換手牌 //雙方換完手牌 遊戲開始 1號玩家抽一張牌 法力水晶上限+1 並補滿法力水晶 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 0); var servantCards1 = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 2, 3, 4, 5, 6 }); GameSystemTestEnvironment.GameWithGamePlayerDeckState(game, 1, servantCards1.Select(x => x.CardRecordID).ToList()); var servantCards2 = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 2, 3, 4, 5, 6 }); GameSystemTestEnvironment.GameWithGamePlayerDeckState(game, 2, servantCards2.Select(x => x.CardRecordID).ToList()); #endregion #region operations game.GamePlayer1.ChangeHand(new int[0]); game.GamePlayer2.ChangeHand(new int[0]); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(0, game.Field1.ServantCount); Assert.AreEqual(0, game.Field2.ServantCount); Assert.AreEqual(1, game.RoundCount); #endregion #region player1 Assert.AreEqual(5, game.GamePlayer1.Deck.CardRecordIDs.Count()); Assert.AreEqual(1, game.GamePlayer1.GamePlayerID); Assert.AreEqual(true, game.GamePlayer1.HasChangedHand); Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(1, game.GamePlayer1.ManaCrystal); Assert.AreEqual(1, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(0, game.GamePlayer1.Hero.Attack); Assert.AreEqual(0, game.GamePlayer1.Hero.AttackCountInThisTurn); Assert.AreEqual(1, game.GamePlayer1.Hero.HeroID); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); Assert.AreEqual(30, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(0, game.GamePlayer1.Hero.WeaponCardRecordID); #endregion #region player2 Assert.AreEqual(6, game.GamePlayer2.Deck.CardRecordIDs.Count()); Assert.AreEqual(2, game.GamePlayer2.GamePlayerID); Assert.AreEqual(true, game.GamePlayer2.HasChangedHand); Assert.AreEqual(0, game.GamePlayer2.HandCardIDs.Count()); Assert.AreEqual(0, game.GamePlayer2.ManaCrystal); Assert.AreEqual(0, game.GamePlayer2.RemainedManaCrystal); Assert.AreEqual(0, game.GamePlayer2.Hero.Attack); Assert.AreEqual(0, game.GamePlayer2.Hero.AttackCountInThisTurn); Assert.AreEqual(2, game.GamePlayer2.Hero.HeroID); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(0, game.GamePlayer2.Hero.WeaponCardRecordID); #endregion }
public void Episode_CastSpell_摧毀_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"摧毀"*1 法力水晶10/10 //玩家2場上有 手下A*1 手下B*1 手下C*1 //輪到1號玩家 玩家1出"摧毀" 對象為敵方位置1的手下 //確認手牌與法力水晶變化 //確認敵方場上手下的血量與生存狀況 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 24 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 2, 3 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { spellCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int>(), servantCards.Select(x => x.CardRecordID).ToList()); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(3, game.Field2.ServantCount); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(3, servantCards[1].RemainedHealth); Assert.AreEqual(4, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"摧毀" 對象為敵方位置1的手下 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, game.Field2.ServantCount); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(3, servantCards[1].RemainedHealth); Assert.AreEqual(4, servantCards[2].RemainedHealth); int positionIndex1ServantID; Assert.IsTrue(game.Field2.FindCardWithPositionIndex(1, out positionIndex1ServantID)); Assert.AreEqual(servantCards[2].CardRecordID, positionIndex1ServantID); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(5, game.GamePlayer1.RemainedManaCrystal); #endregion }
public void Episode_CastSpell_AOE2_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"AOE2"*1 法力水晶10/10 //玩家2場上有 手下A*1 手下B*1 手下C*1 //輪到1號玩家 玩家1出"AOE2" //確認手牌與法力水晶變化 //確認敵方場上手下的血量與生存狀況 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 16 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 2, 3 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { spellCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int>(), new List <int> { servantCards[0].CardRecordID, servantCards[1].CardRecordID, servantCards[2].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(3, game.Field2.ServantCount); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(3, servantCards[1].RemainedHealth); Assert.AreEqual(4, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"AOE2" Assert.IsTrue(game.NonTargeCasttSpell(1, spellCards[0].CardRecordID)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, game.Field2.ServantCount); Assert.AreEqual(0, servantCards[0].RemainedHealth); Assert.AreEqual(1, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal); #endregion }
public void Episode_CastSpell_傷害C_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"傷害C"*1 法力水晶10/10 //玩家2場上有 手下F*2 //輪到1號玩家 玩家1出"傷害C"對位置1的手下釋放效果 //確認手牌與法力水晶變化 //確認敵方場上手下的血量與生存狀況 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 22 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 6, 6 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { spellCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int>(), new List <int> { servantCards[0].CardRecordID, servantCards[1].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, game.Field2.ServantCount); Assert.AreEqual(7, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[1].RemainedHealth); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"傷害C"對位置0的手下釋放效果 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, game.Field2.ServantCount); Assert.AreEqual(1, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[1].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal); #endregion }
public void Episode_CastSpell_抽牌2_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"抽牌2"*1 牌組有CardID1~6的卡各1張 法力水晶10/10 //輪到1號玩家 玩家1出"抽牌2" //確認手牌與法力水晶變化 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 19 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 2, 3, 4, 5, 6 }); GameSystemTestEnvironment.GameWithGamePlayerDeckState(game, 1, servantCards.Select(x => x.CardRecordID).ToList()); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { spellCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(6, game.GamePlayer1.Deck.CardRecordIDs.Count()); Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"抽牌1" Assert.IsTrue(game.NonTargeCasttSpell(1, spellCards[0].CardRecordID)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(3, game.GamePlayer1.Deck.CardRecordIDs.Count()); Assert.AreEqual(3, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(5, game.GamePlayer1.RemainedManaCrystal); int[] handCardIDs = game.GamePlayer1.HandCardIDs.ToArray(); Assert.AreEqual(handCardIDs[0], servantCards[0].CardRecordID); Assert.AreEqual(handCardIDs[1], servantCards[1].CardRecordID); Assert.AreEqual(handCardIDs[2], servantCards[2].CardRecordID); #endregion }
public void Episode_CastSpell_回血A_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"回血A"*4 法力水晶10/10 //玩家1場上有 手下F*1(剩3血) 英雄血量為10 //玩家2場上有 手下F*1(剩1血) 英雄血量為28 //輪到1號玩家 玩家1出"回血A" 對象為我方的手下 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 //確認雙方英雄的血量 //玩家1出"回血A" 對象為敵方的手下 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 //確認雙方英雄的血量 //玩家1出"回血A" 對象為敵方的英雄 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 //確認雙方英雄的血量 //玩家1出"回血A" 對象為我方的英雄 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 //確認雙方英雄的血量 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 29, 29, 29, 29 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 6, 6 }); servantCards[0].RemainedHealth = 3; game.GamePlayer1.Hero.RemainedHP = 10; servantCards[1].RemainedHealth = 1; game.GamePlayer2.Hero.RemainedHP = 28; GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, spellCards.Select(x => x.CardRecordID).ToList()); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int> { servantCards[0].CardRecordID }, new List <int> { servantCards[1].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(3, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[0].Health); Assert.AreEqual(1, servantCards[1].RemainedHealth); Assert.AreEqual(7, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(4, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(10, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"回血A" 對象為我方的手下 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(7, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[0].Health); Assert.AreEqual(1, servantCards[1].RemainedHealth); Assert.AreEqual(7, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(3, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(9, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(10, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"回血A" 對象為敵方的手下 Assert.IsTrue(game.TargetCastSpell(1, spellCards[1].CardRecordID, servantCards[1].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(7, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[0].Health); Assert.AreEqual(5, servantCards[1].RemainedHealth); Assert.AreEqual(7, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(8, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(10, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"回血A" 對象為敵方的英雄 Assert.IsTrue(game.TargetCastSpell(1, spellCards[2].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(7, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[0].Health); Assert.AreEqual(5, servantCards[1].RemainedHealth); Assert.AreEqual(7, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(7, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(10, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"回血A" 對象為我方的英雄 Assert.IsTrue(game.TargetCastSpell(1, spellCards[3].CardRecordID, 1, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(7, servantCards[0].RemainedHealth); Assert.AreEqual(7, servantCards[0].Health); Assert.AreEqual(5, servantCards[1].RemainedHealth); Assert.AreEqual(7, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(14, game.GamePlayer1.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer1.Hero.HP); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion }
public void Episode_CastSpell_手下加強B_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"手下加強B"*2 法力水晶10/10 //玩家1場上有 手下A*1 //玩家2場上有 手下A*1 //輪到1號玩家 玩家1出"手下加強B" 對象為我方的手下 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 //玩家1出"手下加強B" 對象為敵方的手下 //確認手牌與法力水晶變化 //確認場上手下的攻擊與血量 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 28, 28 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 1, 1 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, spellCards.Select(x => x.CardRecordID).ToList()); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int> { servantCards[0].CardRecordID }, new List <int> { servantCards[1].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(1, servantCards[0].Attack); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(2, servantCards[0].Health); Assert.AreEqual(1, servantCards[1].Attack); Assert.AreEqual(2, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"手下加強B" 對象為我方的手下 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(5, servantCards[0].Attack); Assert.AreEqual(6, servantCards[0].RemainedHealth); Assert.AreEqual(6, servantCards[0].Health); Assert.AreEqual(1, servantCards[1].Attack); Assert.AreEqual(2, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"手下加強B" 對象為敵方的手下 Assert.IsTrue(game.TargetCastSpell(1, spellCards[1].CardRecordID, servantCards[1].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(5, servantCards[0].Attack); Assert.AreEqual(6, servantCards[0].RemainedHealth); Assert.AreEqual(6, servantCards[0].Health); Assert.AreEqual(5, servantCards[1].Attack); Assert.AreEqual(6, servantCards[1].RemainedHealth); Assert.AreEqual(6, servantCards[1].Health); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(2, game.GamePlayer1.RemainedManaCrystal); #endregion }
public void Episode_ServantAttack_嘲諷效果_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"嘲諷手下"*1 法力水晶10/10 //玩家2場上有 手下A*1 //輪到1號玩家 玩家1出"嘲諷手下" //確認我方場地有嘲諷手下 //"嘲諷手下"攻擊"手下A" -失敗 //確認手牌與法力水晶變化 //結束回合 //確認回合數與當前玩家 //確認手牌與法力水晶變化 //"手下A"攻擊玩家1英雄 -失敗 //確認手下A與玩家1英雄的血量與手下A本回合攻擊次數 //"手下A"攻擊嘲諷手下 //確認手下A本回合攻擊次數 //確認場上手下的血量與生存狀況 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 8, 1 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { servantCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int>(), new List <int> { servantCards[1].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field2.ServantCount); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"嘲諷手下" Assert.IsTrue(game.NonTargetDisplayServant(1, servantCards[0].CardRecordID, 0)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(1, game.Field2.ServantCount); Assert.IsTrue(game.Field1.AnyTauntServant()); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(8, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations "嘲諷手下"攻擊"手下A" -失敗 Assert.IsFalse(game.ServantAttack(1, servantCards[0].CardRecordID, servantCards[1].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(1, game.Field2.ServantCount); Assert.IsTrue(game.Field1.AnyTauntServant()); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); Assert.AreEqual(2, servantCards[1].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(8, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 結束回合 game.EndRound(); #endregion #region game Assert.AreEqual(2, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(1, game.Field2.ServantCount); Assert.IsTrue(game.Field1.AnyTauntServant()); Assert.IsFalse(servantCards[1].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[1].AttackCountInThisTurn); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(2, servantCards[1].RemainedHealth); #endregion #region player2 Assert.AreEqual(0, game.GamePlayer2.HandCardIDs.Count()); Assert.AreEqual(1, game.GamePlayer2.ManaCrystal); Assert.AreEqual(1, game.GamePlayer2.RemainedManaCrystal); #endregion #region operations "手下A"攻擊玩家1英雄 -失敗 Assert.IsFalse(game.ServantAttack(2, servantCards[1].CardRecordID, 1, false)); #endregion #region game Assert.AreEqual(2, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(1, game.Field2.ServantCount); Assert.IsTrue(game.Field1.AnyTauntServant()); Assert.IsFalse(servantCards[1].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[1].AttackCountInThisTurn); Assert.AreEqual(2, servantCards[0].RemainedHealth); Assert.AreEqual(2, servantCards[1].RemainedHealth); #endregion #region player1 Assert.AreEqual(30, game.GamePlayer1.Hero.RemainedHP); #endregion #region operations "手下A"攻擊嘲諷手下 Assert.IsTrue(game.ServantAttack(2, servantCards[1].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(2, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(1, game.Field2.ServantCount); Assert.IsTrue(game.Field1.AnyTauntServant()); Assert.IsFalse(servantCards[1].IsDisplayInThisTurn); Assert.AreEqual(1, servantCards[1].AttackCountInThisTurn); Assert.AreEqual(1, servantCards[0].RemainedHealth); Assert.AreEqual(1, servantCards[1].RemainedHealth); #endregion }
public void Episode_CastSpell_傷害A_武器與手下法傷效果_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"法傷武器"*1 "傷害A"*2 法力水晶10/10 //玩家1場上有 "法傷手下"*1 //玩家1出"傷害A"對敵方英雄造成效果 //確認手牌與法力水晶變化 //確認敵方英雄的血量 //玩家1出"法傷武器" //確認手牌與法力水晶變化 //玩家1出"傷害A"對敵方英雄造成效果 //確認手牌與法力水晶變化 //確認敵方英雄的血量 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 20, 20 }); var weaponCards = GameSystemTestEnvironment.GameWithWeaponCardRecordState(game, new List <int> { 14 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 11 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { weaponCards[0].CardRecordID, spellCards[0].CardRecordID, spellCards[1].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int> { servantCards[0].CardRecordID }, new List <int>()); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(3, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(0, game.GamePlayer1.Hero.WeaponCardRecordID); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"傷害A"對敵方英雄造成效果 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(9, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(0, game.GamePlayer1.Hero.WeaponCardRecordID); #endregion #region player2 Assert.AreEqual(27, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"法傷武器" Assert.IsTrue(game.NonTargetEquipWeapon(1, weaponCards[0].CardRecordID)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(1, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(weaponCards[0].CardRecordID, game.GamePlayer1.Hero.WeaponCardRecordID); #endregion #region player2 Assert.AreEqual(27, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"傷害A"對敵方英雄造成效果 Assert.IsTrue(game.TargetCastSpell(1, spellCards[1].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal); Assert.AreEqual(weaponCards[0].CardRecordID, game.GamePlayer1.Hero.WeaponCardRecordID); #endregion #region player2 Assert.AreEqual(22, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion }
public void Episode_CastSpell_傷害A_手下法傷效果_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"法傷手下"*1 "傷害A"*2 法力水晶10/10 //輪到1號玩家 玩家1出"法傷手下" //確認手牌與法力水晶變化 //玩家1出"傷害A"對"法傷手下"造成效果 //確認手牌與法力水晶變化 //確認場上手下的血量與生存狀況 //玩家1出"傷害A"對敵方英雄造成效果 //確認手牌與法力水晶變化 //確認敵方英雄的血量 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var spellCards = GameSystemTestEnvironment.GameWithSpellCardRecordState(game, new List <int> { 20, 20 }); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 11 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { spellCards[0].CardRecordID, spellCards[1].CardRecordID, servantCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, servantCards[0].RemainedHealth); #endregion #region player1 Assert.AreEqual(3, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"法傷手下" Assert.IsTrue(game.NonTargetDisplayServant(1, servantCards[0].CardRecordID, 0)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, servantCards[0].RemainedHealth); #endregion #region player1 Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(5, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"傷害A"對"法傷手下"造成效果 Assert.IsTrue(game.TargetCastSpell(1, spellCards[0].CardRecordID, servantCards[0].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(-1, servantCards[0].RemainedHealth); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(4, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion #region operations 玩家1出"傷害A"對敵方英雄造成效果 Assert.IsTrue(game.TargetCastSpell(1, spellCards[1].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(-1, servantCards[0].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(3, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); Assert.AreEqual(30, game.GamePlayer2.Hero.HP); #endregion }
public void Episode_ServantAttack_風怒效果_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"風怒手下"*1 法力水晶10/10 //輪到1號玩家 玩家1出"風怒手下" //"風怒手下"攻擊敵方英雄 -失敗 //確認手牌與法力水晶變化 //結束回合 //確認回合數與當前玩家 //確認手牌與法力水晶變化 //"風怒手下"攻擊玩家2英雄 -失敗 //結束回合 //"風怒手下"攻擊玩家2英雄 //確認"風怒手下"與玩家2英雄的血量與"風怒手下"本回合攻擊次數 //"風怒手下"攻擊玩家2英雄 //確認"風怒手下"與玩家2英雄的血量與"風怒手下"本回合攻擊次數 //"風怒手下"攻擊玩家2英雄 -失敗 //確認"風怒手下"與玩家2英雄的血量與"風怒手下"本回合攻擊次數 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 9 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { servantCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsFalse(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations 玩家1出"風怒手下" Assert.IsTrue(game.NonTargetDisplayServant(1, servantCards[0].CardRecordID, 0)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(7, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations "風怒手下"攻擊敵方英雄 -失敗 Assert.IsFalse(game.ServantAttack(1, servantCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(7, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations 結束回合 game.EndRound(); #endregion #region game Assert.AreEqual(2, game.CurrentGamePlayerID); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(7, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations "風怒手下"攻擊敵方英雄 -失敗 Assert.IsFalse(game.ServantAttack(1, servantCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(2, game.CurrentGamePlayerID); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(7, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations 結束回合 game.EndRound(); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsFalse(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations "風怒手下"攻擊玩家2英雄 Assert.IsTrue(game.ServantAttack(1, servantCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsFalse(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(1, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(29, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations "風怒手下"攻擊玩家2英雄 Assert.IsTrue(game.ServantAttack(1, servantCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsFalse(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(2, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); #endregion #region operations "風怒手下"攻擊玩家2英雄 Assert.IsFalse(game.ServantAttack(1, servantCards[0].CardRecordID, 2, false)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.IsFalse(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(2, servantCards[0].AttackCountInThisTurn); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region player2 Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP); #endregion }
public void Episode_ServantAttack_衝鋒效果_TestMethod1() { //開始一場空的遊戲 設定玩家1手牌"衝鋒手下"*1 法力水晶10/10 //玩家2場上有 手下A*1 //輪到1號玩家 玩家1出"衝鋒手下" //確認手牌與法力水晶變化 //"衝鋒手下"攻擊敵方手下A //確認敵方場上手下的血量與生存狀況 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 1); var servantCards = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 7, 1, 1 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, new List <int> { servantCards[0].CardRecordID }); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 10, 10); GameSystemTestEnvironment.GameWithFieldState(game, new List <int>(), new List <int> { servantCards[1].CardRecordID, servantCards[2].CardRecordID }); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(2, game.Field2.ServantCount); Assert.AreEqual(2, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(10, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations 玩家1出"衝鋒手下" Assert.IsTrue(game.NonTargetDisplayServant(1, servantCards[0].CardRecordID, 0)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(1, game.Field1.ServantCount); Assert.AreEqual(2, game.Field2.ServantCount); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(0, servantCards[0].AttackCountInThisTurn); Assert.AreEqual(1, servantCards[0].RemainedHealth); Assert.AreEqual(2, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(9, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations "衝鋒手下"攻擊敵方手下A Assert.IsTrue(game.ServantAttack(1, servantCards[0].CardRecordID, servantCards[1].CardRecordID, true)); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(0, game.Field1.ServantCount); Assert.AreEqual(2, game.Field2.ServantCount); Assert.IsTrue(servantCards[0].IsDisplayInThisTurn); Assert.AreEqual(1, servantCards[0].AttackCountInThisTurn); Assert.AreEqual(0, servantCards[0].RemainedHealth); Assert.AreEqual(1, servantCards[1].RemainedHealth); Assert.AreEqual(2, servantCards[2].RemainedHealth); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(10, game.GamePlayer1.ManaCrystal); Assert.AreEqual(9, game.GamePlayer1.RemainedManaCrystal); #endregion }
public void Episode_Display2ServantTestMethod1() { //開始一場空的遊戲 設定玩家1手牌"嘲諷手下"*1 "沉默手下"*1 法力水晶6/6 //輪到1號玩家 玩家1出"嘲諷手下" 再出 "沉默手下"(指定"嘲諷手下") //"嘲諷手下"失去嘲諷效果 #region initial Game game = GameSystemTestEnvironment.EmptyGame(1, 0); var servantCards1 = GameSystemTestEnvironment.GameWithServantCardRecordState(game, new List <int> { 8, 10 }); GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, servantCards1.Select(x => x.CardRecordID).ToList()); GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 6, 6); #endregion #region game Assert.AreEqual(1, game.CurrentGamePlayerID); Assert.AreEqual(0, game.Field1.ServantCount); Assert.IsFalse(game.Field1.AnyTauntServant()); #endregion #region player1 Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(6, game.GamePlayer1.ManaCrystal); Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations Assert.IsTrue(game.NonTargetDisplayServant(1, 1, 0)); #endregion #region game Assert.AreEqual(1, game.Field1.ServantCount); int displayedServantID; Assert.IsTrue(game.Field1.FindCardWithPositionIndex(0, out displayedServantID)); Assert.AreEqual(1, displayedServantID); Assert.IsTrue(game.Field1.AnyTauntServant()); #endregion #region player1 Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(6, game.GamePlayer1.ManaCrystal); Assert.AreEqual(4, game.GamePlayer1.RemainedManaCrystal); #endregion #region operations Assert.IsTrue(game.TargetDisplayServant(1, 2, 1, 1, true)); #endregion #region game Assert.AreEqual(2, game.Field1.ServantCount); Assert.IsTrue(game.Field1.FindCardWithPositionIndex(1, out displayedServantID)); Assert.AreEqual(2, displayedServantID); Assert.IsFalse(game.Field1.AnyTauntServant()); Assert.AreEqual(0, servantCards1[0].EffectorIDs.Count()); #endregion #region player1 Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count()); Assert.AreEqual(6, game.GamePlayer1.ManaCrystal); Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal); #endregion }