Пример #1
0
    /// <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();
    }
Пример #2
0
    /// <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);
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
    /// <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);
    }
Пример #5
0
    /// <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();
        }
    }
Пример #6
0
    /// <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;
        }
    }
Пример #7
0
    /// <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);
    }
Пример #8
0
 public abstract void GameSetPoint(int score, GameScoreData data);
Пример #9
0
 /// <summary>
 /// 初期化
 /// </summary>
 public void Initialize()
 {
     score = new GameScoreData();
     score.Initialize();
 }