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; }
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); } }