/// <summary> /// 게임 점수 얻기 /// </summary> /// <param name="score"></param> /// <param name="data"></param> public override void GameSetPoint(int score, GameScoreData data) { int value = (int.Parse(_allScore.text) - score); if (value < 0) { base.AddUserScore(-score, data); PlayAwardVideo(); return; } else if (value > 0) { base.AddUserScore(score, data); } else { //0점됫을경우 [게임승리조건]. base.AddUserScore(score, data); PlayAwardVideo(true); return; } if (base.GetUserTurnCheck() == true) { PlayAwardVideo(); } SetRoundScore(); }
/// <summary> /// 어워드 상태 비교. /// </summary> /// <returns></returns> public AWARD GetAward() { GameScoreData[] award = new GameScoreData[3]; if (TURN < 0) { return(AWARD.NONE); } int score = 0; for (int i = 0; i < DARTSHOTLENGTH; i++) { if (_user[TURN, _gameNowRound].ContainsKey(i) == true) { award[i] = _user[TURN, _gameNowRound][i].data; int temp = _user[TURN, _gameNowRound][i].score; switch (award[i]) { case GameScoreData.Double: temp = temp * 2; break; case GameScoreData.Triple: temp = temp * 3; break; case GameScoreData.SBull: case GameScoreData.DBull: temp = temp * 2; break; } score += temp; } } Array.Sort(award); if (award.SequenceEqual(HATTRICK[0]) == true || award.SequenceEqual(HATTRICK[1]) == true || award.SequenceEqual(HATTRICK[2]) == true) { return(AWARD.HAT_TRICK); } if (score >= LOWTON_MIN && score <= LOWTON_MAX) { return(AWARD.LOW_TON); } return(AWARD.NONE); }
/// <summary> /// 현재 점수 저장. /// </summary> /// <param name="score"></param> public void AddUserScore(int score, GameScoreData data) { if (TURN < 0) { return; } object[] objList = new object[5]; for (int i = 0; i < DARTSHOTLENGTH; i++) { if (_user[TURN, _gameNowRound].ContainsKey(i) == false) { Data addData = new Data(); addData.score = score; addData.data = data; if (DataManager.instance.MODEDATA.GAMEMODE_DATA != Enums_Game.GameModeData.CRICKET) { addData.isSum = true; } else { addData._cricketdata = data; if (GetCricketMarkScore(score) < 3) { addData.isSum = false; } else { addData.isSum = true; } int temp = GetCricketMarkScore(score) + (int)data; if (temp > 3 && addData.isSum == false) { temp = temp - 3; addData.isSum = true; addData.data = (GameScoreData)temp; } } _user[TURN, _gameNowRound].Add(i, addData); objList[(int)ParamEnum.TURN] = TURN; objList[(int)ParamEnum.NOWROUND] = _gameNowRound; objList[(int)ParamEnum.DARTNUMBER] = i; objList[(int)ParamEnum.USERTURN] = _userTurn - 1; objList[(int)ParamEnum.ISSUM] = addData.isSum; break; } } _param.Add(objList); }
/// <summary> /// 라운드별 Single/Double/Triple 인지 확인 /// </summary> /// <param name="index"> 라운드 </param> /// <param name="turn"> 특정 유저의 라운드 데이터 </param> /// <returns></returns> public GameScoreData[] GetRoundScoreData(int index, int?turn = null) { GameScoreData[] data = new GameScoreData[DARTSHOTLENGTH]; if (turn == null) { turn = TURN; } for (int i = 0; i < DARTSHOTLENGTH; i++) { if (_user[(int)turn, index].ContainsKey(i) == true) { data[i] = _user[(int)turn, index][i]._cricketdata; } } return(data); }
/// <summary> /// 게임 점수 얻기 /// </summary> /// <param name="score"></param> /// <param name="data"></param> public override void GameSetPoint(int score, GameScoreData data) { if (_cricket_Point_Score.Contains(score) == false) { Debug.Log("[크리켓점수에 포함되지않음]"); base.AddUserScore(0, GameScoreData.None); } else { base.AddUserScore(score, data); } SetRoundScore(); if (base.GetUserTurnCheck() == true) { PlayAwardVideo(); } }
/// <summary> /// 다트 맞았을때 들어오는 파티클 함수. /// </summary> /// <param name="index"></param> /// <param name="data"></param> public void DartBoardAnimation(int index, GameScoreData data) { _board.PlayDartBoardAnimation(index); _bottom.PlayBottomNumberAnimation(index, data); if (_rev_board_hit != null) { CommonMethod.ParticleStop(_rev_board_hit); _rev_board_hit = null; } int rnd = 0; try { switch (data) { case GameScoreData.None: break; case GameScoreData.Single: rnd = UnityEngine.Random.Range(0, _board_single_hit.Length); _rev_board_hit = _board_single_hit[rnd]; break; case GameScoreData.Double: rnd = UnityEngine.Random.Range(0, _board_double_hit.Length); _rev_board_hit = _board_double_hit[rnd]; break; case GameScoreData.Triple: rnd = UnityEngine.Random.Range(0, _board_triple_hit.Length); _rev_board_hit = _board_triple_hit[rnd]; break; case GameScoreData.SBull: case GameScoreData.DBull: rnd = UnityEngine.Random.Range(0, _board_bull_hit.Length); _rev_board_hit = _board_bull_hit[rnd]; break; } Animator _hit_anim = null; _hit_anim = _rev_board_hit.GetComponent <Animator>(); if (_hit_anim != null) { _hit_anim.Play(_hit_anim.name, 0, 0.0f); } CommonMethod.ParticlePlayer(_rev_board_hit); } catch { Debug.Log("Find not Particle"); } SoundManager.PlaySound(SoundType.InGame_FX_ScoreEffect.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_ScoreEffect)); switch (data) { case GameScoreData.None: break; case GameScoreData.Single: SoundManager.PlaySoundUI(SoundType.InGame_FX_Sig_Hit.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_Sig_Hit)); break; case GameScoreData.Double: SoundManager.PlaySoundUI(SoundType.InGame_FX_Dub_Hit.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_Dub_Hit)); break; case GameScoreData.Triple: SoundManager.PlaySoundUI(SoundType.InGame_FX_Tri_Hit.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_Tri_Hit)); break; case GameScoreData.DBull: SoundManager.PlaySoundUI(SoundType.InGame_FX_Bull_Hit.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_Bull_Hit)); break; case GameScoreData.SBull: SoundManager.PlaySoundUI(SoundType.InGame_FX_Bull_Hit.ToString()).SetVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.InGame_FX_Bull_Hit)); break; } }
/// <summary> /// TODO : 테이블에서 데이터 읽어올수있게 추후 구조변경 /// </summary> /// <returns></returns> public bool Init() { _battle = DataManager.instance.MODEDATA.GAMEBATTLE_DATA; switch (DataManager.instance.MODEDATA.GAMEBATTLE_DATA) { case GameBattleData.Solo: _playerCount = 1; break; case GameBattleData.SoloTwo: _playerCount = 2; break; case GameBattleData.SoloThree: _playerCount = 3; break; case GameBattleData.SoloFour: case GameBattleData.TeamTwo: _playerCount = 4; break; case GameBattleData.TeamThree: _playerCount = 6; break; case GameBattleData.TeamFour: _playerCount = 8; break; } int rnd = UnityEngine.Random.Range(0, 4); switch (rnd) { case 0: UIManager.Instance.OpenPopup <UIVideoPlayer>(Enums_Common.UIRootType.Screen_Background).PlayeVideo("Movie/4"); break; case 1: UIManager.Instance.OpenPopup <UIVideoPlayer>(Enums_Common.UIRootType.Screen_Background).PlayeVideo("Movie/11"); break; case 2: UIManager.Instance.OpenPopup <UIVideoPlayer>(Enums_Common.UIRootType.Screen_Background).PlayeVideo("Movie/12"); break; case 3: UIManager.Instance.OpenPopup <UIVideoPlayer>(Enums_Common.UIRootType.Screen_Background).PlayeVideo("Movie/13"); break; } switch (_battle) { case GameBattleData.Solo: CHECKTURN = 1; break; case GameBattleData.SoloTwo: case GameBattleData.TeamTwo: CHECKTURN = 2; break; case GameBattleData.SoloThree: case GameBattleData.TeamThree: CHECKTURN = 3; break; case GameBattleData.SoloFour: case GameBattleData.TeamFour: CHECKTURN = 4; break; } SoundManager.PlayMusic(Enums_Common.SoundType.Dart_Ingame_BGM_Loop1.ToString()); SoundManager.SetMusicVolume(DataManager.instance.SOUND_DATA.GetValue(SoundType.Dart_Ingame_BGM_Loop1)); GameManager.instance.ISPLAY = true; GameManager.instance.ISENDTURN = false; HATTRICK[0] = new GameScoreData[3] { GameScoreData.SBull, GameScoreData.DBull, GameScoreData.DBull }; HATTRICK[1] = new GameScoreData[3] { GameScoreData.SBull, GameScoreData.SBull, GameScoreData.DBull }; HATTRICK[2] = new GameScoreData[3] { GameScoreData.DBull, GameScoreData.DBull, GameScoreData.DBull }; UIDartBoardScreen loadBoard = Resources.Load <UIDartBoardScreen>("Effect/Dartboard_Number"); _board = Instantiate(loadBoard); UIScreen_BottomNumber loadBottom = Resources.Load <UIScreen_BottomNumber>("Effect/Bottom_Number"); _bottom = Instantiate(loadBottom); string[] tableData; GameObject load; tableData = DataManager.instance.GAME_DATA.GetValue("Single"); _board_single_hit = new GameObject[tableData.Length]; for (int i = 0; i < tableData.Length; i++) { load = Resources.Load <GameObject>("Effect/" + tableData[i]); _board_single_hit[i] = Instantiate(load); } tableData = DataManager.instance.GAME_DATA.GetValue("Double"); _board_double_hit = new GameObject[tableData.Length]; for (int i = 0; i < tableData.Length; i++) { load = Resources.Load <GameObject>("Effect/" + tableData[i]); _board_double_hit[i] = Instantiate(load); } tableData = DataManager.instance.GAME_DATA.GetValue("Triple"); _board_triple_hit = new GameObject[tableData.Length]; for (int i = 0; i < tableData.Length; i++) { load = Resources.Load <GameObject>("Effect/" + tableData[i]); _board_triple_hit[i] = Instantiate(load); } tableData = DataManager.instance.GAME_DATA.GetValue("Bull"); _board_bull_hit = new GameObject[tableData.Length]; for (int i = 0; i < tableData.Length; i++) { load = Resources.Load <GameObject>("Effect/" + tableData[i]); _board_bull_hit[i] = Instantiate(load); } _wait_board = new GameObject(); load = Resources.Load <GameObject>("Effect/next_turn"); _wait_board = Instantiate(load); return(true); }
public abstract void GameSetPoint(int score, GameScoreData data);
/// <summary> /// 初期化 /// </summary> public void Initialize() { score = new GameScoreData(); score.Initialize(); }