protected override void OnRequest(request_challenge_stage_end request, object userdata)
    {
        ChallengeStageOverStageActionParam param = userdata as ChallengeStageOverStageActionParam;

        if (param == null)
        {
            return;
        }

        request.floor   = param.Floor;
        request.succeed = true;
        request.time    = param.ConsumeTime;
    }
Пример #2
0
    override public void Balance()
    {
        var scn    = SceneManager.Instance.GetCurScene() as StageScene;
        int result = scn.GetResult();

        //0失败,1 成功
        var mModule = ModuleManager.Instance.FindModule <ChallengeModule>();

        scn.StopTrigger("tf" + mModule.GetDoingFloor());
        WindowManager.Instance.CloseUI("challengecountdown");
        //WindowManager.Instance.CloseUI("countDown");

        if (result == 0)
        {
            ModuleManager.Instance.FindModule <ChallengeModule>().ChallengeFail();
        }
        else
        {
            var evt = new TowerPassEvent(TowerPassEvent.TOWER_PASS)
            {
                mfloor = mModule.GetDoingFloor()
            };
            EventSystem.Instance.PushEvent(evt);

            scn.StopBgSound();
            //重置复活次数
            scn.ResetReliveTimes();
            //重置佣兵复活次数
            scn.ResetCropsReliveTimes();
            //设置定身
            PlayerController.Instance.SetFreeze(true);

            ChallengeStageOverStageActionParam param = new ChallengeStageOverStageActionParam();
            param.Floor       = (uint)ModuleManager.Instance.FindModule <ChallengeModule>().GetDoingFloor();
            param.ConsumeTime = scn.GetLogicRunTime();
            Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_CHALLENGE_STAGE_END, param);

            mModule.SetDoingFloor(mModule.GetDoingFloor() + 1);
        }
    }