Exemple #1
0
 /// <summary>
 /// チャレンジ状態にする
 /// </summary>
 public static void SetChallenge(int playerNumber)
 {
     if (_turn < 1)
     {
         return;
     }
     _sayChallengePlayerNumber = playerNumber;
     _gameModeType             = GameModeTypes.SelectChallengeNumberMode;
 }
Exemple #2
0
 public void ChangeGameMode()
 {
     singlePlayerModeSelected = !singlePlayerModeSelected;
     if (singlePlayerModeSelected == true)
     {
         selectedGameMode = GameModeTypes.SinglePlayer;
         gameModeSelectedPlayerDisplayer.SinglePlayerSelected();
     }
     else
     {
         selectedGameMode = GameModeTypes.TwoPlayer;
         gameModeSelectedPlayerDisplayer.TwoPlayerSelected();
     }
 }
Exemple #3
0
 private void Initialize()
 {
     _turn                  = 0;
     _startUserNumber       = _activeUserNumber;
     _timeToTurnAndTurn     = 1f;
     _flowerChallengeNumber = 0;
     _challengePlayerNumber = -1;
     _openedCardsNumber     = 0;
     _gameModeType          = GameModeTypes.PushCardMode;
     _prevGameModeType      = _gameModeType;
     bottomCard.SetActive(true);
     bottomChallenge.SetActive(false);
     bottomSelectField.SetActive(false);
 }
Exemple #4
0
    public void ChangeMatchMode(GameModeTypes gameMode)
    {
        switch (gameMode)
        {
        case GameModeTypes.SinglePlayer:
        {
            matchModeFactory.gameModeTypes       = GameModeTypes.SinglePlayer;
            matchModeFactory.playSide            = (GamePlaySide)playSideDropDown.value;
            matchModeFactory.gameDifficultyTypes = (GameDifficultyTypes)gameDifficultyDropDown.value;
            matchModeFactory.maxScoreToWin       = Convert.ToInt32(maxScoreToWinDropDown.options[maxScoreToWinDropDown.value].text);
        }
        break;

        case GameModeTypes.TwoPlayer:
        {
            matchModeFactory.gameModeTypes = GameModeTypes.TwoPlayer;
            matchModeFactory.playSide      = (GamePlaySide)playSideDropDown.value;
            matchModeFactory.maxScoreToWin = Convert.ToInt32(maxScoreToWinDropDown.options[maxScoreToWinDropDown.value].text);
        }
        break;
        }
    }
Exemple #5
0
 private void OnEnable()
 {
     selectedGameMode = GameModeTypes.SinglePlayer;
     gameModeSelectedPlayerDisplayer.SinglePlayerSelected();
 }
Exemple #6
0
    private void Update()
    {
        switch (_gameModeType)
        {
        case GameModeTypes.PushCardMode:
            //ボタンの無効化有効化
            if (_turn > 0)
            {
                challengeButton.interactable = _activeUserNumber == 0;
            }
            okButtonOnCards.interactable = (_activeUserNumber == 0) && (player.CardField.CardsCount < 4);
            if (_activeUserNumber != 0)
            {
                //CPUs
                if (_timeToTurnAndTurn <= 0f)
                {
                    FindActiveCPU(_activeUserNumber)?.Thinking(_gameModeType);
                    _timeToTurnAndTurn = 1f;
                }
                else if (_timeToTurnAndTurn >= 1f)
                {
                    FindActiveCPU(_activeUserNumber)?.StartThinking(_gameModeType);
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
                else
                {
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
            }

            break;

        case GameModeTypes.SelectChallengeNumberMode:
            Debug.Log($"act:{_activeUserNumber}\nchallenge:{_challengePlayerNumber}");
            if (_activeUserNumber == _challengePlayerNumber)
            {
                _gameModeType = GameModeTypes.SelectCardFromOtherPlayerMode;
                for (int i = 0; i < OverAllManager.PlayerNumber - 1; i++)
                {
                    cpus[i].SetSelectThisButton();
                }

                return;
            }

            if (_prevGameModeType != _gameModeType && _gameModeType == GameModeTypes.SelectChallengeNumberMode)
            {
                Challenge();
                _prevGameModeType = _gameModeType;
            }

            //チャレンジした後の動作
            //ボタンの無効化有効化
            okButtonOnChallenge.interactable      = (_activeUserNumber == 0);
            passButton.interactable               = (_activeUserNumber == 0);
            challengeNumberSetSlider.interactable = (_activeUserNumber == 0);
            challengeNumberText.text              = $"{challengeNumberSetSlider.value}枚";
            if (_activeUserNumber != 0)
            {
                //CPUs
                if (_timeToTurnAndTurn <= 0f)
                {
                    FindActiveCPU(_activeUserNumber).Thinking(_gameModeType);
                    selectNumber.text = $"{_flowerChallengeNumber}枚";
                    SetSlider(1, _flowerChallengeNumber + 1, _maxFlowerChallengeNumber);
                    _timeToTurnAndTurn = 1f;
                }
                else if (_timeToTurnAndTurn >= 1f)
                {
                    FindActiveCPU(_activeUserNumber).StartThinking(_gameModeType);
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
                else
                {
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
            }

            break;

        case GameModeTypes.SelectCardFromOtherPlayerMode:
            //チャレンジ権利を持つプレイヤーに準場が回ってきた際
            bottomChallenge.SetActive(false);
            bottomSelectField.SetActive(true);

            okButtonOnSelectCard.interactable = _activeUserNumber == 0;
            selectCardNumberText.text         = $"{_openedCardsNumber} / {_flowerChallengeNumber}枚";

            if (_activeUserNumber != 0)
            {
                //CPUs
                if (_timeToTurnAndTurn <= 0f)
                {
                    Debug.Log("Enter Thinking");
                    Debug.Log($"ActiveNumber: {_activeUserNumber}");
                    Debug.Log($"ActiveUser: {FindActiveCPU(_activeUserNumber)}");
                    FindActiveCPU(_activeUserNumber)?.Thinking(_gameModeType);
                    selectCardNumberText.text = $"{_openedCardsNumber} / {_flowerChallengeNumber}枚";
                    _timeToTurnAndTurn        = 1f;
                    player.ResetThis();
                    for (int i = 0; i < OverAllManager.PlayerNumber - 1; i++)
                    {
                        cpus[i].ResetThis();
                    }

                    Initialize();
                }
                else if (_timeToTurnAndTurn >= 1f)
                {
                    FindActiveCPU(_activeUserNumber).StartThinking(_gameModeType);
                    Debug.Log("Complete StartThinking");
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
                else
                {
                    Debug.Log("TimeMinus");
                    _timeToTurnAndTurn -= Time.deltaTime;
                }
            }
            else
            {
                if (player.IsClear || player.IsOut)
                {
                    //スカルが出たか、ポイントを取ったら終了
                    player.ResetThis();
                    for (int i = 0; i < OverAllManager.PlayerNumber - 1; i++)
                    {
                        cpus[i].ResetThis();
                    }

                    Initialize();

                    break;
                }

                player.OpenAllMyCards();
                selectCardNumberText.text = $"{_openedCardsNumber} / {_flowerChallengeNumber}枚";
            }

            break;
        }
    }