Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 2
0
        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
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
        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
        }
Ejemplo n.º 5
0
        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
        }
Ejemplo n.º 6
0
        public void Episode_SwapHandThenStartTestMethod1()
        {   //開始一場空的遊戲 輪到1號玩家 玩家1換手牌 玩家2換手牌
            //雙方換完手牌 遊戲開始 1號玩家抽一張牌 法力水晶上限+1 並補滿法力水晶
            #region initial
            Game game = GameSystemTestEnvironment.EmptyGame(1, 0);
            #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(0, game.GamePlayer1.Deck.CardRecordIDs.Count());
            Assert.AreEqual(1, game.GamePlayer1.GamePlayerID);
            Assert.AreEqual(true, game.GamePlayer1.HasChangedHand);
            Assert.AreEqual(0, 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(0, 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
        }
Ejemplo n.º 7
0
        public void Episode_EmptyGameTestMethod1()
        {//開始一場空的遊戲 輪到1號玩家
            #region initial
            Game game = GameSystemTestEnvironment.EmptyGame(1, 0);
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            Assert.AreEqual(0, game.Field1.ServantCount);
            Assert.AreEqual(0, game.Field2.ServantCount);
            Assert.AreEqual(0, game.RoundCount);
            #endregion

            #region player1
            Assert.AreEqual(0, game.GamePlayer1.Deck.CardRecordIDs.Count());
            Assert.AreEqual(1, game.GamePlayer1.GamePlayerID);
            Assert.AreEqual(false, game.GamePlayer1.HasChangedHand);
            Assert.AreEqual(0, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(0, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, 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(0, game.GamePlayer2.Deck.CardRecordIDs.Count());
            Assert.AreEqual(2, game.GamePlayer2.GamePlayerID);
            Assert.AreEqual(false, 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
        }
Ejemplo n.º 8
0
        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
        }
Ejemplo n.º 9
0
        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
        }
Ejemplo n.º 10
0
        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
        }
Ejemplo n.º 11
0
        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
        }
Ejemplo n.º 12
0
        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
        }
Ejemplo n.º 13
0
        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
        }
Ejemplo n.º 14
0
        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
        }
Ejemplo n.º 15
0
        public void Episode_EquipWeaponAndAttackTestMethod1()
        {
            //開始一場空的遊戲 設定玩家1手牌"精良武器"*1 "風怒武器"*1 "法傷武器"*1 法力水晶8/8
            //輪到1號玩家 玩家1出"精良武器" 並攻擊敵方英雄
            //玩家1攻擊敵方英雄 -失敗
            //玩家1出"風怒武器" "精良武器"被破壞 並攻擊敵方英雄
            //玩家1攻擊敵方英雄 -失敗
            //玩家1出"法傷武器" -失敗
            //玩家1回合結束
            //玩家2回合結束
            #region initial
            Game game         = GameSystemTestEnvironment.EmptyGame(1, 1);
            var  weaponCards1 = GameSystemTestEnvironment.GameWithWeaponCardRecordState(game, new List <int>
            {
                12, 13, 14
            });
            GameSystemTestEnvironment.GameWithGamePlayerHandState(game, 1, weaponCards1.Select(x => x.CardRecordID).ToList());
            GameSystemTestEnvironment.GameWithGamePlayerManaCrystalState(game, 1, 8, 8);
            bool weapon1DestroyedFlag = false, weapon2DestroyedFlag = false;
            weaponCards1[0].OnDestroyed += (weapon) => { weapon1DestroyedFlag = true; };
            weaponCards1[1].OnDestroyed += (weapon) => { weapon2DestroyedFlag = true; };
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(3, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(8, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(0, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(0, game.GamePlayer1.Hero.AttackWithWeapon(game));
            #endregion

            #region player2
            Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1出"精良武器"
            Assert.IsTrue(game.NonTargetEquipWeapon(1, 1));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(1, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(3, weaponCards1[0].Durability, 3);
            Assert.IsFalse(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(30, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 並攻擊敵方英雄
            Assert.IsTrue(game.HeroAttack(1, 2, false));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(1, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(1, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(2, weaponCards1[0].Durability, 3);
            Assert.IsFalse(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1攻擊敵方英雄 -失敗
            Assert.IsFalse(game.HeroAttack(1, 2, false));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(2, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(6, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(1, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(1, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(2, weaponCards1[0].Durability);
            Assert.IsFalse(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1出"風怒武器" "精良武器"被破壞
            Assert.IsTrue(game.NonTargetEquipWeapon(1, 2));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(1, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(8, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(28, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 並攻擊敵方英雄
            Assert.IsTrue(game.HeroAttack(1, 2, false));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(7, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(26, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1攻擊敵方英雄 -失敗
            Assert.IsFalse(game.HeroAttack(1, 2, false));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(7, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(26, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1出"法傷武器" -失敗
            Assert.IsFalse(game.NonTargetEquipWeapon(1, 3));
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(7, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(26, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家1回合結束
            game.EndRound();
            #endregion

            #region game
            Assert.AreEqual(2, game.CurrentGamePlayerID);
            Assert.AreEqual(2, game.RoundCount);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(8, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(0, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(7, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(26, game.GamePlayer2.Hero.RemainedHP);
            #endregion

            #region operations 玩家2回合結束
            game.EndRound();
            #endregion

            #region game
            Assert.AreEqual(1, game.CurrentGamePlayerID);
            Assert.AreEqual(3, game.RoundCount);
            #endregion

            #region player1
            Assert.AreEqual(1, game.GamePlayer1.HandCardIDs.Count());
            Assert.AreEqual(9, game.GamePlayer1.ManaCrystal);
            Assert.AreEqual(9, game.GamePlayer1.RemainedManaCrystal);
            Assert.AreEqual(0, game.GamePlayer1.Hero.AttackCountInThisTurn);
            Assert.AreEqual(2, game.GamePlayer1.Hero.WeaponCardRecordID);
            Assert.AreEqual(2, game.GamePlayer1.Hero.AttackWithWeapon(game));
            Assert.AreEqual(7, weaponCards1[1].Durability);
            Assert.IsTrue(weapon1DestroyedFlag);
            Assert.IsFalse(weapon2DestroyedFlag);
            #endregion

            #region player2
            Assert.AreEqual(26, game.GamePlayer2.Hero.RemainedHP);
            #endregion
        }
Ejemplo n.º 16
0
        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
        }