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; }
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; } } }