Esempio n. 1
0
 public void StartGame()
 {
     m_CurrentRound = eRound.FirstRound;
     if (r_SecondPlayer is ComputerPlayer)
     {
         OnGameAgainstComputer();
     }
 }
Esempio n. 2
0
 private void playerTurnHandler(
     eRound i_NextRound,
     out byte o_LineChosen,
     out byte o_ColomChosen,
     out byte o_ValueOfCell)
 {
     OnCurrentCardChosen(out o_LineChosen, out o_ColomChosen);
     m_CurrentPlayer.PlayTurn(r_GameBoard, o_LineChosen, o_ColomChosen);
     o_ValueOfCell  = r_GameBoard[o_LineChosen, o_ColomChosen].Content;
     m_CurrentRound = i_NextRound;
 }
Esempio n. 3
0
        private bool computerTurn()
        {
            ((ComputerPlayer)r_SecondPlayer).PlayTurn(
                r_GameBoard,
                out m_FirstLineChosen,
                out m_FirstColomChosen,
                out m_SecondLineChosen,
                out m_SecondColomChosen);

            m_CurrentRound = eRound.EndRound;
            return(isPlayerFoundPair());
        }
Esempio n. 4
0
 private void UpdateRound()
 {
     //State update
     if (_round != _prevRound)
     {
         //Debug.Log(this.name + " : end prev state: " + _prevState);
         //Debug.Log(this.name + " : start cur state : " + _state);
         roundMap[_prevRound].EndState();
         roundMap[_round].StartState();
         _prevRound = _round;
     }
     roundMap[_round].UpdateState();
 }
Esempio n. 5
0
        public void RunGame()
        {
            bool playerFoundPair = m_GameToggle
                                       ? playerTurn()
                                       : setRivalTurn();

            if (m_CurrentRound == eRound.EndRound)
            {
                m_GameToggle    = playerFoundPair ? m_GameToggle : !m_GameToggle;
                m_CurrentPlayer = m_GameToggle ? r_FirstPlayer : r_SecondPlayer;
                m_CurrentRound  = eRound.FirstRound;
                OnTurnEnd();
            }

            if (IsGameEnds)
            {
                OnGameEnds();
            }
        }
Esempio n. 6
0
    void Start()
    {
        Debug.Log("Start GameManager!!!");
        //BGM, SE 오브젝트 읽어오기
        bgm      = GameObject.Find("BGM").GetComponent <AudioSource>();
        se       = GameObject.Find("SE").GetComponent <AudioSource>();
        bgm.clip = waitBgm;
        bgm.Play();

        //타일 객체들 생성(타일 위 오브젝트 관리를 위해서...)
        for (int i = -1; i < 8; i++)    //-1은 체스말 대기 위치
        {
            //tileCharacters.Add(new List<ChessTile>());
            for (int j = 0; j < 8; j++)
            {
                ChessTile chessTile = ScriptableObject.CreateInstance <ChessTile>();
                if (tilemap.GetTile(new Vector3Int(j, i, 0)))
                {
                    chessTile.sprite = Resources.Load <Sprite>("Blocks/" + tilemap.GetTile(new Vector3Int(j, i, 0)).name);
                }
                chessTile.colliderType = Tile.ColliderType.None;
                chessTile.SetTilePosition(new Vector3Int(j, i, 0));
                tilemap.SetTile(chessTile.GetTilePosition(), chessTile);
            }
        }

        //캐릭터 구매 UI 초기화(제거 예정)
        resetBtn.onClick.AddListener(() =>
        {
            {
                SetBuySlot(buySlot1, GetRandomCharacter());
                SetBuySlot(buySlot2, GetRandomCharacter());
                SetBuySlot(buySlot3, GetRandomCharacter());
                SetBuySlot(buySlot4, GetRandomCharacter());
            }
        });

        //최신 플레이어 배치 리스트 저장
        lastPlayerNameList = new List <sSpawnCharacter>();

        currentRound = 1;
        //round 별 적 데이터 저장
        roundEnemyList    = new Dictionary <int, List <sSpawnCharacter> >();
        roundEnemyList[1] = new List <sSpawnCharacter>();
        roundEnemyList[1].Add(GetSpawnCharacterInfo(eCharacter.ROYALKNIGHT, 2, 4));
        //roundEnemyList[1].Add(GetSpawnCharacterInfo(eCharacter.ROYALKNIGHT, 2, 5));
        //roundEnemyList[1].Add(GetSpawnCharacterInfo(eCharacter.SKELETON, 5, 4));
        //roundEnemyList[1].Add(GetSpawnCharacterInfo(eCharacter.SKELETON, 5, 5));

        roundEnemyList[2] = new List <sSpawnCharacter>();
        roundEnemyList[2].Add(GetSpawnCharacterInfo(eCharacter.WORM, 0, 7));
        roundEnemyList[2].Add(GetSpawnCharacterInfo(eCharacter.WORM, 1, 7));
        roundEnemyList[2].Add(GetSpawnCharacterInfo(eCharacter.WORM, 6, 7));
        roundEnemyList[2].Add(GetSpawnCharacterInfo(eCharacter.WORM, 7, 6));
        roundEnemyList[2].Add(GetSpawnCharacterInfo(eCharacter.WORM, 7, 7));

        roundEnemyList[3] = new List <sSpawnCharacter>();
        roundEnemyList[3].Add(GetSpawnCharacterInfo(eCharacter.TAURUS, 2, 5));
        roundEnemyList[3].Add(GetSpawnCharacterInfo(eCharacter.TAURUS, 3, 6));
        roundEnemyList[3].Add(GetSpawnCharacterInfo(eCharacter.BLOBMINION, 4, 6));
        roundEnemyList[3].Add(GetSpawnCharacterInfo(eCharacter.BLOBMINION, 5, 5));

        roundEnemyList[4] = new List <sSpawnCharacter>();
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.DWARF, 2, 4));
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.DWARF, 3, 4));
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.DWARF, 4, 4));
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.DWARF, 5, 4));
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.DWARF, 6, 4));
        roundEnemyList[4].Add(GetSpawnCharacterInfo(eCharacter.SANTA, 4, 6));

        roundEnemyList[5] = new List <sSpawnCharacter>();
        roundEnemyList[5].Add(GetSpawnCharacterInfo(eCharacter.IMP, 6, 7));
        roundEnemyList[5].Add(GetSpawnCharacterInfo(eCharacter.IMP, 7, 6));
        roundEnemyList[5].Add(GetSpawnCharacterInfo(eCharacter.DARKKNIGHT, 7, 7));

        roundMap = new Dictionary <eRound, Round>();
        roundMap[eRound.WAIT]   = new WaitRound();
        roundMap[eRound.BATTLE] = new BattleRound();
        roundMap[eRound.FINISH] = new FinishRound();

        for (eRound i = 0; i < eRound.MAXSIZE; i++)
        {
            roundMap[i].InitState();
        }
        _round = eRound.WAIT;
        //초기 세팅만 startState 호출(이후 변경으로 인한 내용은 update에서 감지)
        roundMap[_round].StartState();
        _prevRound = _round;
    }