public void nextWorldPower(Game1 game, MapController mapController) { switch (currentPlayer) { case WhosTurn.Germany: { checkForWin(game, mapController); currentPlayer = WhosTurn.SovietUnion; break; } case WhosTurn.SovietUnion: { checkForWin(game, mapController); currentPlayer = WhosTurn.GreatBritain; break; } case WhosTurn.GreatBritain: { checkForWin(game, mapController); currentPlayer = WhosTurn.UnitedStates; break; } case WhosTurn.UnitedStates: { checkForWin(game, mapController); currentPlayer = WhosTurn.Germany; break; } } }
// Use this for initialization void Start() { thisTurnPlayer = WhosTurn.Player1; spriteChangeCaller = GameObject.Find("SummonButton").GetComponent <Summon>(); diceControl = GameObject.Find("RollDiceButton").GetComponent <DiceRoll>(); manaup = GameObject.Find("GameManager").GetComponent <GameManage>(); ResourceStat(); TurnCounterOn(); }
private void StartingPlayer() { var random = new Random(); if (random.Next(2) + 1 > 1) { whosTurn = WhosTurn.Player1; } else { whosTurn = WhosTurn.Player2; } }
//Sets Computer card private async Task ComputerTurnAsync() { Moves.Text = "COMPUTER IS CHOOSING"; await Task.Delay(1000); game.SetComputerCard(); UpCard.DisplayCard(game.upFacedCard.CardName); whosTurn = WhosTurn.Player; if (game.ComputerSelection.CardNumber == "1" || game.ComputerSelection.CardNumber == "8") { whosTurn = WhosTurn.Computer; await ComputerTurnAsync(); } else { whosTurn = WhosTurn.Player; } }
public void StartGame() { GameState state = GameState.WinnerNotFound; // initialize starting player StartingPlayer(); playing = (whosTurn == WhosTurn.Player1) ? players[0] : players[1]; // allow for players to take turns till winner/draw state is reached while (true) { // Render Game board RenderGame(); // Player takes a turn on the board while (!Board.MakePlay(playing.Symbol, playing.MakePlay())) { ; } Console.WriteLine("*****************************\n"); // get game state and break on winner/draw state state = Board.gamestate(playing.Symbol); if (state != GameState.WinnerNotFound) { break; } else { // Alternate Player turns whosTurn = (whosTurn == WhosTurn.Player1) ? WhosTurn.Player2 : WhosTurn.Player1; playing = (whosTurn == WhosTurn.Player1) ? players[0] : players[1]; } } DrawOrWin(state); }
private async System.Threading.Tasks.Task AfterTap(object sender, int index) { BackCard.IsEnabled = false; Moves.Text = ""; Moves.Foreground = new SolidColorBrush(Colors.White); if (index == 9)//9 = Draw from Deck { game.Draw(); UpCard.DisplayCard(game.upFacedCard.CardName); if (game.upFacedCard.CardNumber == "1") { Moves.Text = "YOU DREW AN ACE! COMPUTER TURN SKIPPED, GO AGAIN."; whosTurn = WhosTurn.Player; } else if (game.upFacedCard.CardNumber == "8") { Moves.Text = "YOU DREW A WILDCARD! CHOOSE A NEW CARD WITH A DESIRED SUIT!"; whosTurn = WhosTurn.Player; } else { whosTurn = WhosTurn.Computer; } } else { if (whosTurn == WhosTurn.Player) { //Checks if players card is valid or not if (game.ValidatePlay(game.PlayerHand[index]) == 0) { Moves.Text = "YOU CANNOT CHOOSE THIS CARD"; Moves.Foreground = new SolidColorBrush(Colors.Maroon); await Task.Delay(700); Moves.Text = ""; } else { //If valid checks for special cards if (game.ValidatePlay(game.PlayerHand[index]) == 8)//Card is eight { Moves.Text = "WILDCARD! CHOOSE A NEW CARD WITH A DESIRED SUIT!"; whosTurn = WhosTurn.Player; } else if (game.ValidatePlay(game.PlayerHand[index]) == 2)//Card is one { Moves.Text = "COMPUTER TURN SKIPPED, GO AGAIN."; whosTurn = WhosTurn.Player; } else if (game.ValidatePlay(game.PlayerHand[index]) == 1)// Card is regular { whosTurn = WhosTurn.Computer; } userCardsChosen += 1; //Keep count of player cards chosen game.SetUserCard(game.PlayerHand[index]); // CHANGES THE UPFACED CARD TO USER CARD UpCard.DisplayCard(game.upFacedCard.CardName); PlayingCards cardUsed = (PlayingCards)sender; cardUsed.DisplayCard("BC"); cardUsed.IsEnabled = false; //Makes the chosen card unclickable if (userCardsChosen == 8) // if player plays all eight cards they win { game.GameOver("PLAYER"); } } } } // Computer's turn if (whosTurn == WhosTurn.Computer && userCardsChosen != 8) { await ComputerTurnAsync(); Moves.Text = game.ComputerMoves; } BackCard.IsEnabled = true; //Displays winner if there is one if (game.Winner != null) { DisableCards(); Moves.Text = game.Winner; Moves.Foreground = new SolidColorBrush(Colors.Gold); } }
public void OnFinishButtonClick() { heroImageUI.sprite = heroImages[(int)FinishButtonClick.thisTurnPlayer]; // 턴종료시 해당 턴 종료한유닛들을 다음에 이동가능하게 바꿔놓고 주도권 넘김 for (int i = 0; i < spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units.Count; i++) { spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units[i].GetComponent <UnitStatus>().hadRollDice = false; spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units[i].GetComponent <UnitStatus>().hadAction = false; } // 게임매니져에서 마나자원 점령한 수만큼 마나 더해줌, // 플레이어 마스터는 기본으로 마나 1을 항상 생성하고 유닛들은 모두 마나코스트를 가지고있다 // 마나를 수급하는건 여기서하고, Debug.Log(manaup._playerInfo[(int)FinishButtonClick.thisTurnPlayer].occupiedMsGsFort[0] + "는 마나광산수" + FinishButtonClick.thisTurnPlayer); Debug.Log(spriteChangeCaller.manaPoint[(int)thisTurnPlayer] + "는 더하기전 마나"); spriteChangeCaller.manaPoint[(int)thisTurnPlayer] = manaup._playerInfo[(int)FinishButtonClick.thisTurnPlayer].occupiedMsGsFort[0]; Debug.Log(spriteChangeCaller.manaPoint[(int)thisTurnPlayer] + "는 더하고 나서 마나"); manaup.goldSum[(int)thisTurnPlayer] += manaup._playerInfo[(int)thisTurnPlayer].occupiedMsGsFort[1]; for (int i = 0; i < spriteChangeCaller.PlayerUnits[(int)thisTurnPlayer].Units.Count; i++) { UnitStatus tUS = spriteChangeCaller.PlayerUnits[(int)thisTurnPlayer].Units[i].GetComponent <UnitStatus>(); if (tUS.atkBPProp != 0 || tUS.defBPProp != 0 || tUS.diceBPProp != 0) { switch (tUS.atkBPProp) { case 0: break; case 1: tUS.atkBPProp--; tUS.atkPoint = tUS.originAtk; break; default: tUS.atkBPProp--; break; } switch (tUS.defBPProp) { case 0: break; case 1: tUS.defBPProp--; tUS.defPoint = tUS.originDef; break; default: tUS.defBPProp--; break; } switch (tUS.diceBPProp) { case 0: break; case 1: tUS.diceBPProp--; tUS.dices = tUS.originDices; break; default: tUS.diceBPProp--; break; } } } ++thisTurnPlayer; if (thisTurnPlayer == WhosTurn.Player3) { thisTurnPlayer = WhosTurn.Player1; } // 마나코스트를 가져가는건 플레이어가 변경된후에~ 유닛스테이터스 포문돌려서 현재 플레이어 마나에서 차감 // 소환할때의 차감과 코스트는 조금 다른거라고 생각함. 이걸 기준으로 유닛간 성능격차를 벌이면된다고생각 UnitStatus thisTurnPlayerStatus = GameObject.Find(thisTurnPlayer + "_Master").GetComponent <UnitStatus>(); spriteChangeCaller.FinishSummonPannelSpriteChanger((int)thisTurnPlayerStatus.unitFaction); NextButtonClick.unitMoveIndex = 0; Move.nowPosition = spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units[NextButtonClick.unitMoveIndex].GetComponent <UnitStatus>().nowTile; CameraMover.nowCamNum = spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units[NextButtonClick.unitMoveIndex].GetComponent <UnitStatus>().nowTile; diceControl.diceQuantity = spriteChangeCaller.PlayerUnits[(int)FinishButtonClick.thisTurnPlayer].Units[NextButtonClick.unitMoveIndex].GetComponent <UnitStatus>().dices; // diceControl.NextUnitAndTurnEnd(); Debug.Log(thisTurnPlayer); Summon._isSummon = false; ResourceStat(); turnNum++; TurnCounterOn(); }