Esempio n. 1
0
        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;
            }
            }
        }
Esempio n. 2
0
 // 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();
 }
Esempio n. 3
0
        private void StartingPlayer()
        {
            var random = new Random();

            if (random.Next(2) + 1 > 1)
            {
                whosTurn = WhosTurn.Player1;
            }
            else
            {
                whosTurn = WhosTurn.Player2;
            }
        }
Esempio n. 4
0
        //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;
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
    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();
    }