public void StartGame() { m_CurrentRound = eRound.FirstRound; if (r_SecondPlayer is ComputerPlayer) { OnGameAgainstComputer(); } }
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; }
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()); }
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(); }
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(); } }
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; }