示例#1
0
    public void init(Xint type, GameType.Mode playMode, float closeTime = 2.0f, float callbackDelay = -1.0f)
    {
#if !UNITY_EDITOR
        autoHide = true;
#endif

        _callbackDelay = callbackDelay;

        pcClear.gameObject.SetActive(false);
        pcFail.gameObject.SetActive(false);

        gameObject.SetActive(true);

        GameManager.setTimeScale = 1.0f;

        spResult.color = new Color(1, 1, 1, 0.0f);
        _playMode      = playMode;

        bool isParticle = false;

        switch (type)
        {
        case Result.Type.GameOver:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_gameover";

            pcFail.gameObject.SetActive(true);
            pcFail.Play();

            spBgWin.gameObject.SetActive(false);
            spBgLose.gameObject.SetActive(true);

            isParticle = false;
            break;

        case Result.Type.TimeOver:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_timeover";

            spBgWin.gameObject.SetActive(false);
            spBgLose.gameObject.SetActive(true);

            pcFail.gameObject.SetActive(true);
            pcFail.Play();

            isParticle = false;
            break;


        case Result.Type.Finish:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_finish";

            pcClear.gameObject.SetActive(true);
            pcClear.Play();

            spBgWin.gameObject.SetActive(true);
            spBgLose.gameObject.SetActive(false);

            isParticle = false;

            SoundData.play("m_finish");

            break;


        case Result.Type.Clear:
            spResult.enabled = true;

            spResult.spriteName = "img_result_epic_clear";

            spBgWin.gameObject.SetActive(true);
            spBgLose.gameObject.SetActive(false);

            pcClear.gameObject.SetActive(true);
            pcClear.Play();

            SoundData.play("uiet_clear");

            break;

        case Result.Type.Lose:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_lose";
            isParticle          = false;

            pcFail.gameObject.SetActive(true);
            pcFail.Play();

            spBgWin.gameObject.SetActive(false);
            spBgLose.gameObject.SetActive(true);

            SoundData.play("f_lose");

            break;

        case Result.Type.Win:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_win";
            isParticle          = false;

            pcClear.gameObject.SetActive(true);
            pcClear.Play();

            spBgWin.gameObject.SetActive(true);
            spBgLose.gameObject.SetActive(false);

            SoundData.play("f_win");

            break;

        case Result.Type.Perfect:
            spResult.enabled    = true;
            spResult.spriteName = "img_result_perpect";
            isParticle          = false;

            pcClear.gameObject.SetActive(true);
            pcClear.Play();

            spBgWin.gameObject.SetActive(true);
            spBgLose.gameObject.SetActive(false);

            break;


        case Result.Type.Fail:
            spResult.enabled = true;

            spResult.spriteName = "img_result_epic_fail";
            isParticle          = false;

            spBgWin.gameObject.SetActive(false);
            spBgLose.gameObject.SetActive(true);

            pcFail.gameObject.SetActive(true);
            pcFail.Play();

            break;
        }

        if (isParticle == false)
        {
            spResult.MakePixelPerfect();

            spResult.width  = Mathf.RoundToInt(spResult.width * 1.43f);
            spResult.height = Mathf.RoundToInt(spResult.height * 1.43f);

            _v.x = 0.3f;
            _v.y = 0.3f;
            _v.z = 1.0f;
            spResult.transform.localScale = _v;

            _v.x = 1.0f; _v.y = 1.0f; _v.z = 1.0f;

            spResult.color = new Color(1, 1, 1, 0.2f);
            TweenAlpha tp = TweenAlpha.Begin(spResult.gameObject, 0.6f, 1.0f);
            tp.eventReceiver = gameObject;

            TweenScale.Begin(spResult.gameObject, 0.6f, _v).method = UITweener.Method.BounceIn;

            if (autoHide)
            {
                Invoke("sequence2", 1.2f);
            }
            Invoke("onComplete", closeTime);
        }
        else
        {
            Invoke("onComplete", 2.5f);
        }


        if (_callbackDelay >= 0)
        {
            Invoke("onCallback", _callbackDelay);
        }

        if (targetFSM != null)
        {
            Invoke("playFSM", fsmDelay);
        }
    }
    public void setNowRound(RoundData rd, GameType.Mode gameType = GameType.Mode.Epic, int inputAct = 1, int inputStage = 1, int inputRound = 1)
    {
//		Debug.LogError("**** StageManager setNowRound");

        sigongData = null;

        playAct   = inputAct;
        playStage = inputStage;
        playRound = inputRound;

        DebugManager.instance.useTagMatchMode = (gameType == GameType.Mode.Friendly || gameType == GameType.Mode.Championship);


#if UNITY_EDITOR
        if (DebugManager.instance.useDebug)
        {
            DebugManager.instance.useTagMatchMode = (rd.mode == RoundData.MODE.PVP);
        }
#endif


        isMaxRound = (inputAct == GameDataManager.instance.maxAct && inputStage == GameDataManager.instance.maxStage && inputRound == GameDataManager.instance.maxRound);

        isRepeatGame = (GameDataManager.instance.roundClearStatusCheck(playAct, playStage, playRound));

        isSurrenderGame = false;

        // 라운드 게임 정보를 입력.
        isIntro = (rd.id == "INTRO");

        nowRound         = rd;
        mapStartPosX     = rd.mapStartEndPosX[0];
        mapEndPosX       = rd.mapStartEndPosX[1];
        mapPlayerEndPosX = mapEndPosX - 100;

        if (rd.mode == RoundData.MODE.HELL)
        {
            HellModeManager.instance.setStage(rd);
        }
        else
        {
            HellModeManager.instance.setStage(null);
        }

        isPVPMode = false;

        nowPlayingGameType = gameType;


        switch (rd.mode)
        {
        case RoundData.MODE.PVP:
            clearChecker = checkGameClearPVP;
            failChecker  = checkGameFailPVP;
            isPVPMode    = true;
            break;

        case RoundData.MODE.KILLEMALL:
            clearChecker = checkGameClearKillemAll;
            failChecker  = checkGameFailKillemAll;
            break;

        case RoundData.MODE.SURVIVAL:
            clearChecker = checkGameClearSurvival;
            failChecker  = checkGameFailSurvival;
            break;

        case RoundData.MODE.PROTECT:
            clearChecker = checkGameClearProtect;
            failChecker  = checkGameFailProtect;
            break;

        case RoundData.MODE.SNIPING:
            clearChecker = checkGameClearSniping;
            failChecker  = checkGameFailSniping;
            break;

        case RoundData.MODE.KILLCOUNT:
            clearChecker = checkGameClearKillCount;
            failChecker  = checkGameFailKillCount;
            break;

        case RoundData.MODE.KILLCOUNT2:
            clearChecker = checkGameClearKillCount2;
            failChecker  = checkGameFailKillCount;
            break;

        case RoundData.MODE.ARRIVE:
            clearChecker = checkGameClearArrive;
            failChecker  = checkGameFailArrive;
            _prevDist    = 99999;
            break;

        case RoundData.MODE.DESTROY:
            clearChecker = checkGameClearDestroy;
            failChecker  = checkGameFailDestroy;
            break;

        case RoundData.MODE.GETITEM:
            clearChecker = checkGameClearGetItem;
            failChecker  = checkGameFailGetItem;
            break;

        case RoundData.MODE.B_TEST:
            clearChecker = checkGameClearBtest;
            failChecker  = checkGameFailKillemAll;
            break;

        case RoundData.MODE.HELL:
            clearChecker       = checkGameClearHell;
            failChecker        = checkGameFailHell;
            nowPlayingGameType = GameType.Mode.Hell;
            break;

        default:
            clearChecker = checkGameClear;
            failChecker  = checkGameFail;
            break;
        }


                #if UNITY_EDITOR
        if (DebugManager.instance.useDebug)
        {
            if (UnitSkillCamMaker.instance.useUnitSkillCamMaker)
            {
                clearChecker = GameManager.me.stageManager.dontCheck;
                failChecker  = GameManager.me.stageManager.dontCheck;
                return;
            }
        }
                #endif
    }