public virtual void runEvent(Player[] playerList, int activePlayer, int playerCount, AdvDeck advDeck, GameManager gm) { return; }
// Use this for initialization void Start() { //Init the decks advDeck = new AdvDeck(); storyDeck = new StoryDeck(); rigging = new TestRiggingFunctions(); advDeck.initDeck(); storyDeck.initDeck(); log.log("decks initialized"); //testingScenario = PlayerPrefs.GetInt("testScenario"); //playerCount = PlayerPrefs.GetInt("humanPlayerNum") + 1 ; //aiStrat=PlayerPrefs.GetInt("aiStrategy"); hp = new HelperFunctions(); playerCount = rigging.getRiggedPlayerCount(testingScenario); players = new Player[playerCount]; for (int i = 0; i < playerCount; i++) { if (testingScenario == 12 || testingScenario == 13 || testingScenario == 14) { players[i] = new Player(new Card[12], 4, 0, "Player " + (i)); } else { players[i] = new Player(new Card[12], 0, 0, "Player " + (i)); } } if (testingScenario == 18) { players[0] = new Player(new Card[12], 4, 0, "Player 1"); } dealHands(playerCount); if (rigging.getRiggedAiStratagy(testingScenario) != -1) { if (rigging.getRiggedAiStratagy(testingScenario) == 1) { players[rigging.getRiggedAiIndex(testingScenario)].assumingDirectControl(new Strategy1AI(players[rigging.getRiggedAiIndex(testingScenario)])); } if (rigging.getRiggedAiStratagy(testingScenario) == 2) { players[rigging.getRiggedAiIndex(testingScenario)].assumingDirectControl(new Strategy2AI(players[rigging.getRiggedAiIndex(testingScenario)])); } } log.Init(); log.log("Testing scenario is " + testingScenario); log.log("There are " + PlayerPrefs.GetInt("aiPlayerNum") + " AI players."); log.log("There are " + PlayerPrefs.GetInt("humanPlayerNum") + " Human players."); log.log("Current test scenario is " + PlayerPrefs.GetInt("testScenario")); ui = new UI(this); log.log("Created UI"); //Create all the players and add it to the players array log.log("Created player array"); log.log("Dealt cards"); gameStart(); }
public Card[][] dealRiggedHand(int test, Player[] players, AdvDeck advDeck) { Card[][] result; if (test == 0 || test == 6 || test == 7 || test == 9) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } } else if (test == 1 || test == 2 || test == 3) { result = new Card[4][]; Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("saxons"); player1NewHand[1] = advDeck.getCard("boar"); player1NewHand[2] = advDeck.getCard("sword"); player1NewHand[3] = advDeck.getCard("toquestingbeast"); for (int i = 4; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; for (int i = 0; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } Card[] player3NewHand = new Card[12]; player3NewHand[0] = advDeck.getCard("horse"); player3NewHand[1] = advDeck.getCard("excalibur"); for (int i = 2; i < player3NewHand.Length; i++) { player3NewHand[i] = advDeck.drawCard(); } Card[] player4NewHand = new Card[12]; player4NewHand[0] = advDeck.getCard("battleax"); player4NewHand[1] = advDeck.getCard("lance"); for (int i = 2; i < player4NewHand.Length; i++) { player4NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; result[2] = player3NewHand; result[3] = player4NewHand; } else if (test == 4) { result = new Card[3][]; Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("saxons"); player1NewHand[1] = advDeck.getCard("tovalor"); for (int i = 2; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("amour"); player2NewHand[1] = advDeck.getCard("amour"); for (int i = 2; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } Card[] player3NewHand = new Card[12]; player3NewHand[0] = advDeck.getCard("mordred"); for (int i = 1; i < player3NewHand.Length; i++) { player3NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; result[2] = player3NewHand; } else if (test == 5) { result = new Card[3][]; Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("gawain"); player1NewHand[1] = advDeck.getCard("percival"); for (int i = 2; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("thieves"); player2NewHand[2] = advDeck.getCard("thieves"); player2NewHand[3] = advDeck.getCard("saxons"); player2NewHand[4] = advDeck.getCard("saxons"); player2NewHand[5] = advDeck.getCard("saxons"); player2NewHand[6] = advDeck.getCard("robberknight"); player2NewHand[7] = advDeck.getCard("robberknight"); player2NewHand[8] = advDeck.getCard("mordred"); for (int i = 9; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } Card[] player3NewHand = new Card[12]; player3NewHand[0] = advDeck.getCard("mordred"); for (int i = 1; i < player3NewHand.Length; i++) { player3NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; result[2] = player3NewHand; } else if (test == 7) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("thieves"); player2NewHand[2] = advDeck.getCard("thieves"); player2NewHand[3] = advDeck.getCard("saxons"); player2NewHand[4] = advDeck.getCard("saxons"); player2NewHand[5] = advDeck.getCard("saxons"); player2NewHand[6] = advDeck.getCard("robberknight"); player2NewHand[7] = advDeck.getCard("robberknight"); player2NewHand[8] = advDeck.getCard("tovalor"); for (int i = 9; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } result[1] = player2NewHand; } else if (test == 8) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("thieves"); player1NewHand[1] = advDeck.getCard("saxons"); player1NewHand[2] = advDeck.getCard("boar"); player1NewHand[3] = advDeck.getCard("toquestingbeast"); for (int i = 4; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("saxons"); player2NewHand[2] = advDeck.getCard("horse"); player2NewHand[3] = advDeck.getCard("horse"); player2NewHand[4] = advDeck.getCard("lance"); player2NewHand[5] = advDeck.getCard("excalibur"); for (int i = 4; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; } else if (test == 9) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("thieves"); player1NewHand[1] = advDeck.getCard("saxons"); player1NewHand[2] = advDeck.getCard("boar"); player1NewHand[3] = advDeck.getCard("greenknight"); for (int i = 4; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("saxons"); player2NewHand[2] = advDeck.getCard("horse"); player2NewHand[3] = advDeck.getCard("horse"); player2NewHand[4] = advDeck.getCard("lance"); player2NewHand[5] = advDeck.getCard("excalibur"); for (int i = 6; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; } else if (test == 10) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("thieves"); player1NewHand[1] = advDeck.getCard("saxons"); player1NewHand[2] = advDeck.getCard("boar"); player1NewHand[3] = advDeck.getCard("greenknight"); for (int i = 4; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("saxons"); player2NewHand[2] = advDeck.getCard("horse"); player2NewHand[3] = advDeck.getCard("horse"); player2NewHand[4] = advDeck.getCard("lance"); player2NewHand[5] = advDeck.getCard("excalibur"); for (int i = 6; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; } else if (test == 11) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } Card[] player1NewHand = new Card[12]; player1NewHand[0] = advDeck.getCard("thieves"); player1NewHand[1] = advDeck.getCard("saxons"); player1NewHand[2] = advDeck.getCard("toquestingbeast"); player1NewHand[3] = advDeck.getCard("greenknight"); for (int i = 4; i < player1NewHand.Length; i++) { player1NewHand[i] = advDeck.drawCard(); } Card[] player2NewHand = new Card[12]; player2NewHand[0] = advDeck.getCard("thieves"); player2NewHand[1] = advDeck.getCard("saxons"); player2NewHand[2] = advDeck.getCard("horse"); player2NewHand[3] = advDeck.getCard("horse"); player2NewHand[4] = advDeck.getCard("lance"); player2NewHand[5] = advDeck.getCard("excalibur"); for (int i = 6; i < player2NewHand.Length; i++) { player2NewHand[i] = advDeck.drawCard(); } result[0] = player1NewHand; result[1] = player2NewHand; } else if (test == 13 || test == 14 || test == 15 || test == 16 || test == 17 || test == 18) { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } return(result); } else { result = new Card[3][]; for (int i = 0; i < 3; i++) { Card[] newHand = new Card[12]; for (int j = 0; j < newHand.Length; j++) { newHand[j] = advDeck.drawCard(); //log.log("Gave " + players[i].getName() + " a " + newHand[j].getName() + " card"); } result[i] = newHand; } } return(result); }
public override void runEvent(Player[] playerList, int activePlayer, int playerCount, AdvDeck advDeck, GameManager gm) { int lowestShields = 50; //arbitrarily high count int lowestRank = 10; //arbitrarily high count Card[] draws = new Card[2]; Card[] empty = null; int highestShields = -1; for (int i = 0; i < playerList.Length; i++) { if (playerList[i].getShields() > highestShields) { highestShields = playerList[i].getShields(); } } Player [] playersAffected = null; switch (name) { case "chivdeed": //player(s) in last receive 3 shields for (int i = 0; i < playerCount; i++) { if (playerList [i].getRank() < lowestRank) { lowestRank = playerList [i].getRank(); } if (playerList [i].getShields() < lowestShields) { lowestShields = playerList [i].getShields(); } } for (int j = 0; j < playerCount; j++) { if ((playerList[j].getRank() == lowestRank) && (playerList[j].getShields() == lowestShields)) { playerList[j].addShields(3); } } break; case "courtcalled": //all players discard all allies Debug.Log("Playing courtcalled. Current Player is: " + playerList[activePlayer].getName()); for (int i = 0; i < playerCount; i++) { playerList [i].setInPlayHand(null); playerList [i].getLogger().log("Discarding all cards in play."); } gm.drawQuestCard(); break; case "kingscall": Debug.Log("Playing kingscall. Current Player is: " + playerList[activePlayer].getName()); for (int i = 0; i < playerList.Length; i++) { Debug.Log(i); if (playerList[i].getShields() == highestShields) { playersAffected = hp.addPlayer(playersAffected, playerList[i]); } } gm.kingsCall(playersAffected); //top player(s) must discard 1 weapon. if they can't they must discard 2 foes break; case "recognition": Debug.Log("Playing recognition. Current Player is: " + playerList[activePlayer].getName()); gm.recognition(); //next player(s) to complete a quest get 2 extra shields break; case "plague": //active player loses 2 shields if possible Debug.Log("Playing plague. Current Player is: " + playerList[activePlayer].getName()); if (playerList[activePlayer].getShields() > 1) { Debug.Log("Removing 2 shields from " + playerList[activePlayer].getName()); playerList[activePlayer].removeShields(2); } gm.drawQuestCard(); break; case "pox": //all players but active players lose 1 shield if possible Debug.Log("Playing pox. Current Player is: " + playerList[activePlayer].getName()); for (int i = 0; i < playerCount; i++) { if (i != activePlayer && playerList[i].getShields() > 0) { Debug.Log("Removing a shield from " + playerList[i].getName()); playerList[i].removeShields(1); } } gm.drawQuestCard(); break; case "prosperity": //all players draw 2 adventure cards for (int i = 0; i < playerCount; i++) { log.log("prosperity through the kingdom called"); gm.drawXGeneralNumberOfCards(2, state.PROSPERITY, playerList); } break; case "queensfavor": Debug.Log("Playing queensfavor. Current Player is: " + playerList[activePlayer].getName()); //player(s) in last draw 2 adventure cards for (int i = 0; i < playerCount; i++) { if (playerList [i].getShields() < lowestShields) { lowestShields = playerList [i].getShields(); } } for (int j = 0; j < playerCount; j++) { if (playerList[j].getShields() == lowestShields) { playersAffected = hp.addPlayer(playersAffected, playerList[j]); } } gm.drawXGeneralNumberOfCards(2, state.QUEENSFAVOR, playersAffected); break; } return; }