public void PlayACard(Card cardToPlay)
        {
            Player player;
            int playerTurn;
            if (gameState.player1Turn)
            {
                playerTurn = 1;
                player = gameState.player1;
            }
            else
            {
                playerTurn = 2;
                player = gameState.player2;
            }

            foreach (Card tempCard in player.playerDeck)
            {
                if (tempCard.Name == cardToPlay.Name)
                {
                    player.playerDeck.Remove(tempCard);
                    fieldHandler.Execute(playerTurn, tempCard);
                    break;
                }
            }

            gameState.player1Turn = !gameState.player1Turn;
            gameState.didPreviousPlayerSkip = false;
        }
Example #2
0
        public void Execute(int playerNo, Card card)
        {
            List<Card> currentPlayerDeck, oppPlayerDeck;
            bool[] currentPlayerEffect, oppPlayerEffect;
            if (playerNo == 1)
            {
                currentPlayerDeck = field.player1Deck;
                oppPlayerDeck = field.player2Deck;
                currentPlayerEffect = field.player1Effects;
                oppPlayerEffect = field.player2Effects;
            }
            else
            {
                currentPlayerDeck = field.player2Deck;
                oppPlayerDeck = field.player1Deck;
                currentPlayerEffect = field.player2Effects;
                oppPlayerEffect = field.player1Effects;
            }

            if (card.GetType() == typeof(UnitCard))
            {
                // when using unit card
                UnitCard unitCard = (UnitCard)card;
                //currentPlayerDeck.Add(card);
                currentPlayerDeck.Add(effectHandler.AddEffectToCard(unitCard, currentPlayerEffect));
            }
            else
            {
                SpecialCard specialCard = (SpecialCard)card;
                switch (specialCard.ID)
                {
                    case 1:
                        currentPlayerEffect[specialCard.ID] = true;

                        foreach (UnitCard unitCard in currentPlayerDeck)
                        {
                            unitCard.Value *= 2;
                        }
                        break;
                    case 2:
                        oppPlayerEffect[specialCard.ID] = true;

                        foreach (UnitCard unitCard in oppPlayerDeck)
                        {
                            unitCard.Value = 1;
                        }
                        break;
                    case 3:
                        currentPlayerEffect[specialCard.ID] = true;
                        oppPlayerEffect[specialCard.ID] = true;

                        foreach (UnitCard unitCard in currentPlayerDeck)
                        {
                            if (unitCard.Type == "Melee")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        foreach (UnitCard unitCard in oppPlayerDeck)
                        {
                            if (unitCard.Type == "Melee")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        break;
                    case 4:
                        currentPlayerEffect[specialCard.ID] = true;
                        oppPlayerEffect[specialCard.ID] = true;

                        foreach (UnitCard unitCard in currentPlayerDeck)
                        {
                            if (unitCard.Type == "Range")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        foreach (UnitCard unitCard in oppPlayerDeck)
                        {
                            if (unitCard.Type == "Range")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        break;
                    case 5:
                        currentPlayerEffect[specialCard.ID] = true;
                        oppPlayerEffect[specialCard.ID] = true;

                        foreach (UnitCard unitCard in currentPlayerDeck)
                        {
                            if (unitCard.Type == "Siege")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        foreach (UnitCard unitCard in oppPlayerDeck)
                        {
                            if (unitCard.Type == "Siege")
                            {
                                unitCard.Value = 1;
                            }
                        }
                        break;
                    case 6:
                        currentPlayerEffect[specialCard.ID] = true;
                        oppPlayerDeck.Clear();
                        break;
                    default:
                        break;
                }
            }
        }