// 界面还原 private void Reset() { for (int i = 0; i < mItemNormalList.Count; ++i) { StageBalanceItemUI item = mItemNormalList[i]; if (item != null) { item.RemoveListener(); item.Reset(); } } for (int i = 0; i < mItemExtraList.Count; ++i) { StageBalanceItemUI item = mItemExtraList[i]; if (item != null) { item.RemoveListener(); item.Reset(); } } mRes = null; mTimer = 15.0f; mLeftTimeText.text = ((int)mTimer).ToString(); mState = UIState.STATE_ORIGINAL; }
// 得到关卡解锁等级 public int GetStageUnlockLevel(int stageId) { if (!DataManager.Scene_StageSceneTable.ContainsKey(stageId)) { return(0); } System.Type type = typeof(Scene_StageSceneTableItem); Scene_StageSceneTableItem listRes = DataManager.Scene_StageSceneTable[stageId] as Scene_StageSceneTableItem; for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(listRes); if (unlockcondid < 0) { continue; } if (!DataManager.ConditionTable.ContainsKey(unlockcondid)) { continue; } ConditionTableItem condRes = DataManager.ConditionTable[unlockcondid] as ConditionTableItem; if (condRes.mType == ConditionType.LEVEL) { return(condRes.mValue); } } return(0); }
private void onPlayerDataChanged(EventBase ev) { if (!IsZombieGame) { return; } PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null) { return; } if (mLastPlayerLv != module.GetLevel()) { mLastPlayerLv = module.GetLevel(); Scene_StageSceneTableItem cur = null, next = null; if (GetCurAndNextStage(out cur, out next)) { if ((cur != mCurZombieScene) || (next != mNextZombieScene)) { UpdateZombieStageList(); } } else { Debug.LogError("数据错误"); } } }
public override void Destroy() { mScene = null; mRes = null; mEndModule = null; EventSystem.Instance.removeEventListener(StageEndUIEvent.STAGE_END_FINISH, onGameOver); }
public bool CheckSuitableFC(int stageId) { PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null) { return(false); } Scene_StageSceneTableItem ssti = DataManager.Scene_StageSceneTable[stageId] as Scene_StageSceneTableItem; if (ssti == null) { return(false); } if (ssti.mSuitableFC > 0) { if ((int)module.GetGrade() < ssti.mSuitableFC) { YesOrNoBoxManager.Instance.ShowYesOrNoUI("危险警告", "您的战斗力小于推荐值,继续挑战可能会失败,是否继续?", SendEnterStageRequest, stageId); return(false); } } return(true); }
// 清空 public void ClearStageListItem() { mSelectedUI = null; mSelectedLevel = 0; mSelectedStageItem = null; mStageItemList = new List <StageListItemUI>(); }
public StageSceneBalanceComponent(StageScene scene) { mScene = scene; mRes = mScene.GetStageRes(); EventSystem.Instance.addEventListener(StageEndUIEvent.STAGE_END_FINISH, OnStageEndFinish); }
public ActiveSceneBalanceComponent(StageScene scene) { mScene = scene; mRes = mScene.GetStageRes(); EventSystem.Instance.addEventListener(StageEndUIEvent.STAGE_END_FINISH, onGameOver); Init(); }
// 销毁 public override void Destroy() { mScene = null; mRes = null; EventSystem.Instance.removeEventListener(StageReliveEvent.STAGE_RELIVE_REQUEST, onReliveRequest); EventSystem.Instance.removeEventListener(StageReliveEvent.STAGE_RELIVE_RESPOND, onReliveRespond); }
public StageSceneReliveComponent(StageScene scene) { mScene = scene; mRes = mScene.GetStageRes(); EventSystem.Instance.addEventListener(StageReliveEvent.STAGE_RELIVE_REQUEST, onReliveRequest); EventSystem.Instance.addEventListener(StageReliveEvent.STAGE_RELIVE_RESPOND, onReliveRespond); }
private void InitItemUIList() { if (mItemList == null) { return; } mItemList.Clear(); SortedList <int, Scene_StageSceneTableItem> sortedlist = new SortedList <int, Scene_StageSceneTableItem>(); IDictionaryEnumerator itr = DataManager.Scene_WantedSceneTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageSceneTableItem res = itr.Value as Scene_StageSceneTableItem; sortedlist.Add(res.resID, res); } // foreach (Scene_StageSceneTableItem res in DataManager.Scene_WantedSceneTable.Values) // { // sortedlist.Add(res.resID, res); // } foreach (Scene_StageSceneTableItem res in sortedlist.Values) { GameObject obj = WindowManager.Instance.CloneGameObject(cloneItemPrefab); if (obj == null) { continue; } obj.SetActive(true); obj.name = "UIWantedItem" + res.resID.ToString(); obj.transform.parent = mGrid.transform; obj.transform.localScale = Vector3.one; UIWantedItem itemui = new UIWantedItem(obj); //itemui.Idx = i; itemui.Res = res; UIEventListener.Get(obj).onClick = OnWantedItemClicked; itemui.InitUI(); mItemList.Add(itemui); } mGrid.repositionNow = true; }
// 检查是否可以进入关卡 public bool CheckEnterStage(int stageId) { ERROR_CODE result = ERROR_CODE.ERR_SCENE_ENTER_OK; do { PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null) { result = ERROR_CODE.ERR_SCENE_ENTER_FAILED; break; } StageData psd = module.GetStageData(stageId); if (psd == null) { result = ERROR_CODE.ERR_SCENE_ENTER_FAILED; break; } if (!DataManager.Scene_StageSceneTable.ContainsKey(stageId)) { result = ERROR_CODE.ERR_SCENE_ENTER_FAILED; break; } Scene_StageSceneTableItem ssti = DataManager.Scene_StageSceneTable[stageId] as Scene_StageSceneTableItem; if (ssti == null) { result = ERROR_CODE.ERR_SCENE_ENTER_FAILED; break; } if (ssti.mEnterTimes > 0 && module.GetStageDailyTimes(stageId) >= ssti.mEnterTimes) { result = ERROR_CODE.ERR_SCENE_ENTER_FAILED_NOTIMES; break; } return(true); } while (true); PrintErrorCode(result); return(false); }
// 关卡 public void SetStageRes(Scene_StageSceneTableItem res) { if (res == null) { return; } mStageNameText.text = res.name; mLevelText.text = StageDataManager.Instance.GetStageUnlockLevel(res.resID).ToString() + "级"; maxEnterTime = res.mEnterTimes; //if(maxEnterTime < 0) mEnterTimeText.gameObject.SetActive(maxEnterTime > 0); UIAtlasHelper.SetSpriteImage(mStagePic, res.mStageBk); UIAtlasHelper.SetSpriteImage(mBossIcon, res.mBossIcon, true); }
// 整理读表得到的数据 public void InitDataStruct() { mSubTypeDatas = new Dictionary <SceneType, StageSubTypeData>(); IDictionaryEnumerator itr = DataManager.Scene_StageSceneTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageSceneTableItem sceneres = itr.Value as Scene_StageSceneTableItem; StageSubTypeData subdata = null; if (mSubTypeDatas.ContainsKey(SceneManager.GetSceneType(sceneres))) { subdata = mSubTypeDatas[SceneManager.GetSceneType(sceneres)]; } if (subdata == null) { subdata = new StageSubTypeData(); mSubTypeDatas.Add(SceneManager.GetSceneType(sceneres), subdata); } if (subdata.mFightZoneDatas == null) { subdata.mFightZoneDatas = new Dictionary <int, StageFightZone>(); } StageFightZone zonedata = null; if (subdata.mFightZoneDatas.ContainsKey(sceneres.mZoneId)) { zonedata = subdata.mFightZoneDatas[sceneres.mZoneId]; } if (zonedata == null) { zonedata = new StageFightZone(); subdata.mFightZoneDatas.Add(sceneres.mZoneId, zonedata); } zonedata.mMaxStarNum++; } // foreach(Scene_StageSceneTableItem sceneres in DataManager.Scene_StageSceneTable.Values) // { // // } }
/// <summary> /// 根据StageSceneTableItem表中的解锁条件ID1来作为可进入等级判定; /// </summary> /// <param name="item1">当前等级可以进入的</param> /// <param name="item2">下一个等级可以进入的</param> /// <returns></returns> bool GetCurAndNextStage(out Scene_StageSceneTableItem item1, out Scene_StageSceneTableItem item2) { int cur = 0, next = int.MaxValue; item1 = null; item2 = null; IDictionaryEnumerator itr = DataManager.Scene_StageSceneTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageSceneTableItem scene = itr.Value as Scene_StageSceneTableItem; if (SceneManager.GetSceneType(scene) != SceneType.SceneType_Zombies) { continue; } int limitLv = scene.mUnlockCondId0; if ((limitLv < mLastPlayerLv) && (limitLv > cur)) { cur = limitLv; item1 = scene; } if ((limitLv > mLastPlayerLv) && (limitLv < next)) { next = limitLv; item2 = scene; } } // foreach (Scene_StageSceneTableItem scene in DataManager.Scene_StageSceneTable) // { // // } if (item1 == null) { return(false); } return(true); }
override public bool Init(BaseSceneInitParam param) { StageSceneInitParam stageParam = param as StageSceneInitParam; if (!DataManager.SceneTable.ContainsKey(stageParam.res_id)) { return(false); } mSubRes = DataManager.SceneTable[stageParam.res_id] as Scene_StageSceneTableItem; if (!base.Init(stageParam)) { return(false); } mBalanceComponent = new StageSceneBalanceComponent(this); mShowPickGuide = false; mReliveComponent = new StageSceneReliveComponent(this); return(true); }
private void OnWantedItemClicked(GameObject target) { UIWantedItem item = null; foreach (UIWantedItem ui in mItemList) { if (ObjectCommon.ReferenceEquals(ui.gameObject, target)) { item = ui; ui.SetSelected(true); } else { ui.SetSelected(false); } } mSelectedItemUI = item; mSelectedItemRes = item.Res; UpdateSelectedItem(); }
// 前置关卡Id public int GetPervStageId(int stageId) { if (!DataManager.Scene_StageSceneTable.ContainsKey(stageId)) { return(-1); } int ret = -1; Scene_StageSceneTableItem stageres = DataManager.Scene_StageSceneTable[stageId] as Scene_StageSceneTableItem; System.Type type = typeof(Scene_StageSceneTableItem); for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(stageres); if (unlockcondid < 0) { continue; } if (!DataManager.ConditionTable.ContainsKey(unlockcondid)) { continue; } ConditionTableItem condres = DataManager.ConditionTable[unlockcondid] as ConditionTableItem; if (condres.mType != ConditionType.STAGE_GRADE) { continue; } ret = condres.mParam1; } return(ret); }
/// <summary> /// 条件描述文本 /// </summary> /// <param name="type">条件类型</param> /// <param name="param1">参数1</param> /// <param name="param2">参数2</param> /// <param name="value">值</param> /// <returns></returns> public string GetConditionText(ConditionType type, int param1, int param2, int value) { string ret = null; switch (type) { // 等级 case ConditionType.LEVEL: { ret = "等级:" + value.ToString() + "级"; } break; // 货币 case ConditionType.MONEY: { switch (param1) { case (int)ProceedsType.Money_Game: { ret = "金币:" + value.ToString(); } break; case (int)ProceedsType.Money_RMB: { ret = "钻石:" + value.ToString(); } break; case (int)ProceedsType.Money_Prestige: { ret = "声望:" + value.ToString(); } break; case (int)ProceedsType.Money_Stren: { ret = "强化点:" + value.ToString(); } break; case (int)ProceedsType.Money_Arena: { ret = "竞技币:" + value.ToString(); } break; default: { GameDebug.LogError("未知货币类型"); } break; } } break; // 经验 case ConditionType.EXP: { ret = "经验:" + value.ToString(); } break; // 道具 case ConditionType.ITEM: { string itemname = ItemManager.Instance.getItemName(param1); if (!string.IsNullOrEmpty(itemname)) { ret = itemname + "X" + value.ToString(); } } break; // 关卡解锁 case ConditionType.STAGE_UNLOCK: { if (DataManager.Scene_StageSceneTable.ContainsKey(param1)) { Scene_StageSceneTableItem stageres = DataManager.Scene_StageSceneTable[param1] as Scene_StageSceneTableItem; if (stageres != null) { ret = "解锁关卡:" + stageres.name; } } } break; // 关卡评价 case ConditionType.STAGE_GRADE: { string[] grade = { "S", "A", "B", "C" }; if (value >= (int)StageGrade.StageGrade_C && value <= (int)StageGrade.StageGrade_S) { ret = "关卡评价:" + grade[value]; } } break; default: return(null); } return(ret); }
// 服务器同步角色关卡数据 public void onSyncStageData(EventBase e) { PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); ClearZoneStarNum(); mUnlockDatas = new Dictionary <ConditionType, ArrayList>(); Dictionary <SceneType, Dictionary <int, ZoneTempData> > mTempDatas = new Dictionary <SceneType, Dictionary <int, ZoneTempData> >(); System.Type type = typeof(Scene_StageSceneTableItem); IDictionaryEnumerator itr = DataManager.Scene_StageSceneTable.GetEnumerator(); while (itr.MoveNext()) { Scene_StageSceneTableItem res = itr.Value as Scene_StageSceneTableItem; ConditionTableItem condres = null; for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { // 建立解锁条件->解锁关卡id的映射 System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(res); if (unlockcondid >= 0 && DataManager.ConditionTable.ContainsKey(unlockcondid)) { ConditionTableItem condtableres = DataManager.ConditionTable[unlockcondid] as ConditionTableItem; ArrayList unlocklist = null; if (mUnlockDatas.ContainsKey(condtableres.mType)) { unlocklist = mUnlockDatas[condtableres.mType]; } if (unlocklist == null) { unlocklist = new ArrayList(); mUnlockDatas.Add(condtableres.mType, unlocklist); } StageUnlockData unlockdata = new StageUnlockData(); unlockdata.condition = condtableres; unlockdata.stageid = res.resID; unlocklist.Add(unlockdata); if (condtableres.mType == ConditionType.STAGE_GRADE) { condres = condtableres; } } } // 战区星星数 if (module.IsStageHasPassed(res.resID) && mSubTypeDatas.ContainsKey(SceneManager.GetSceneType(res))) { Dictionary <int, StageFightZone> zonedata = mSubTypeDatas[SceneManager.GetSceneType(res)].mFightZoneDatas; if (zonedata != null && zonedata.ContainsKey(res.mZoneId)) { zonedata[res.mZoneId].mStarNum++; } } // 按解锁关系排序 Dictionary <int, ZoneTempData> tempSubTypeData = null; if (mTempDatas.ContainsKey(SceneManager.GetSceneType(res))) { tempSubTypeData = mTempDatas[SceneManager.GetSceneType(res)]; } if (tempSubTypeData == null) { tempSubTypeData = new Dictionary <int, ZoneTempData>(); mTempDatas.Add(SceneManager.GetSceneType(res), tempSubTypeData); } ZoneTempData tempZoneData = null; if (tempSubTypeData.ContainsKey(res.mZoneId)) { tempZoneData = tempSubTypeData[res.mZoneId]; } if (tempZoneData == null) { tempZoneData = new ZoneTempData(); tempSubTypeData.Add(res.mZoneId, tempZoneData); } if (tempZoneData.mStageTempDatas == null) { tempZoneData.mStageTempDatas = new Dictionary <int, StageTempData>(); } StageTempData temp = new StageTempData(); temp.stageId = res.resID; if (condres != null) { temp.prevStageId = condres.mParam1; } else { temp.prevStageId = -1; if (!tempZoneData.mHeadStageIdList.Contains(res.resID)) { tempZoneData.mHeadStageIdList.Add(res.resID); } //tempZoneData.mHeadStageId = res.resID; } tempZoneData.mStageTempDatas.Add(res.resID, temp); } // foreach (Scene_StageSceneTableItem res in DataManager.Scene_StageSceneTable.Values) // { // // } foreach (SceneType subtype in mTempDatas.Keys) { if (!mSubTypeDatas.ContainsKey(subtype)) { continue; } StageSubTypeData subtypedata = mSubTypeDatas[subtype]; Dictionary <int, ZoneTempData> tempsubdata = mTempDatas[subtype]; foreach (int zoneid in tempsubdata.Keys) { if (!subtypedata.mFightZoneDatas.ContainsKey(zoneid)) { continue; } StageFightZone fightzonedata = subtypedata.mFightZoneDatas[zoneid]; fightzonedata.mStageListIds = new ArrayList(); ZoneTempData tempzonedata = tempsubdata[zoneid]; foreach (StageTempData tempstagedata in tempzonedata.mStageTempDatas.Values) { if (tempstagedata.prevStageId < 0 || !tempzonedata.mStageTempDatas.ContainsKey(tempstagedata.prevStageId)) { continue; } tempzonedata.mStageTempDatas[tempstagedata.prevStageId].nextStageId = tempstagedata.stageId; } for (int i = 0; i < tempzonedata.mHeadStageIdList.Count; ++i) { int headId = tempzonedata.mHeadStageIdList[i]; if (!tempzonedata.mStageTempDatas.ContainsKey(headId)) { continue; } fightzonedata.mStageListIds.Add(headId); } for (int i = 0; i < tempzonedata.mHeadStageIdList.Count; ++i) { int headId = tempzonedata.mHeadStageIdList[i]; if (!tempzonedata.mStageTempDatas.ContainsKey(headId)) { continue; } StageTempData curdata = tempzonedata.mStageTempDatas[headId]; if (curdata == null) { continue; } if (!tempzonedata.mStageTempDatas.ContainsKey(curdata.nextStageId)) { continue; } StageTempData nextdata = tempzonedata.mStageTempDatas[curdata.nextStageId]; do { fightzonedata.mStageListIds.Add(nextdata.stageId); nextdata = tempzonedata.mStageTempDatas.ContainsKey(nextdata.nextStageId) ? tempzonedata.mStageTempDatas[nextdata.nextStageId] : null; } while (nextdata != null); } } } }
// 服务器同步关卡通关数据 public void SyncStagePass(role_stage stagedata) { if (stagedata == null) { return; } if (!DataManager.Scene_StageSceneTable.ContainsKey(stagedata.stage_id)) { return; } Scene_StageSceneTableItem passstageres = DataManager.Scene_StageSceneTable[stagedata.stage_id] as Scene_StageSceneTableItem; if (passstageres == null) { return; } PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (module == null) { return; } bool firstPass = !module.IsStageHasPassed((int)stagedata.stage_id); // 更新角色的关卡数据 StageData newdata = new StageData(); newdata.stageid = (int)stagedata.stage_id; newdata.maxgrade = (StageGrade)stagedata.max_grade; newdata.maxcombo = stagedata.max_combo; newdata.killrate = stagedata.kill_rate; newdata.passtimerecord = stagedata.passtime_record; newdata.passtimes = stagedata.pass_times; module.UpdateStageData(newdata); if (passstageres.mEnterTimes > 0) { StageDailyData newdailydata = new StageDailyData(); newdailydata.stageid = (int)stagedata.stage_id; newdailydata.daily_times = module.GetStageDailyTimes((int)stagedata.stage_id) + 1; module.UpdateStageDailyData(newdailydata); } // 更新战区星星数 if (firstPass && mSubTypeDatas.ContainsKey(SceneManager.GetSceneType(passstageres))) { Dictionary <int, StageFightZone> zonedata = mSubTypeDatas[SceneManager.GetSceneType(passstageres)].mFightZoneDatas; if (zonedata != null && zonedata.ContainsKey(passstageres.mZoneId)) { zonedata[passstageres.mZoneId].mStarNum++; } } if (!mUnlockDatas.ContainsKey(ConditionType.STAGE_GRADE)) { return; } ArrayList list = mUnlockDatas[ConditionType.STAGE_GRADE]; if (list == null) { return; } // 检查是否有因此解锁的关卡 System.Type type = typeof(Scene_StageSceneTableItem); foreach (StageUnlockData unlockdata in list) { if (unlockdata.condition == null) { continue; } if (unlockdata.condition.mParam1 != stagedata.stage_id) { continue; } if (!DataManager.Scene_StageSceneTable.ContainsKey(unlockdata.stageid)) { continue; } bool success = true; Scene_StageSceneTableItem stageres = DataManager.Scene_StageSceneTable[unlockdata.stageid] as Scene_StageSceneTableItem; for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(stageres); if (unlockcondid < 0) { continue; } if (!ConditionManager.Instance.CheckCondition(unlockcondid)) { success = false; break; } } // 有因此解锁的关卡 if (success) { UnlockStageActionParam param = new UnlockStageActionParam(); param.stageid = unlockdata.stageid; Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_SCENE_UNLOCK, param); } } StagePassServerEvent stageevent = new StagePassServerEvent(StagePassServerEvent.STAGE_PASS_SERVER_EVENT); stageevent.mStageData = newdata; EventSystem.Instance.PushEvent(stageevent); SceneManager.Instance.RequestEnterLastCity(); }
// 主属性变更 public void onMainPropertyChange(EventBase evt) { PropertyEvent propertyevent = evt as PropertyEvent; if (!System.Enum.IsDefined(typeof(MainPropertyType), propertyevent.propertyId)) { return; } if (propertyevent.propertyId != (int)MainPropertyType.PropertyType_Level) { return; } if (!mUnlockDatas.ContainsKey(ConditionType.LEVEL)) { return; } ArrayList list = mUnlockDatas[ConditionType.LEVEL]; if (list == null) { return; } // 检查是否有因此解锁的关卡 System.Type type = typeof(Scene_StageSceneTableItem); foreach (StageUnlockData unlockdata in list) { if (unlockdata.condition == null) { continue; } if (unlockdata.condition.mValue != propertyevent.newValue) { continue; } if (!DataManager.Scene_StageSceneTable.ContainsKey(unlockdata.stageid)) { continue; } bool success = true; Scene_StageSceneTableItem stageres = DataManager.Scene_StageSceneTable[unlockdata.stageid] as Scene_StageSceneTableItem; for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(stageres); if (unlockcondid < 0) { continue; } if (!ConditionManager.Instance.CheckCondition(unlockcondid)) { success = false; break; } } // 有因此解锁的关卡 if (success) { UnlockStageActionParam param = new UnlockStageActionParam(); param.stageid = unlockdata.stageid; Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_SCENE_UNLOCK, param); } } }
// 初始化数据 private void Init() { BaseScene scene = SceneManager.Instance.GetCurScene(); if (scene == null) { return; } if (!typeof(StageScene).IsAssignableFrom(scene.GetType())) { return; } StageScene stage = scene as StageScene; mRes = stage.GetStageRes(); if (mRes == null) { return; } if (mModule == null) { mModule = ModuleManager.Instance.FindModule <StageBalanceModule>(); } mOKBtn.SetActive(false); mNormalPanel.SetActive(false); mExtraPanel.SetActive(false); mAwardPanel.SetActive(false); mExtraAwardPanel.SetActive(false); mNormalEffectUI.Stop(); mExtraEffectUI.Stop(); // 不显示普通翻牌 if (mRes.mRandomAwardTimes < 1 || mRes.mRandomAwardBoxId < 0) { mLeftAwardTimes = 0; mState = UIState.STATE_3; } else { mNormalPanel.SetActive(true); mLeftAwardTimes = mRes.mRandomAwardTimes; mState = UIState.STATE_0; } mNormalTimesLabel1.text = GetCardTypeText(mRes.mRandomAwardCostId); foreach (StageBalanceItemUI item in mItemNormalList) { item.SetCostId(mRes.mRandomAwardCostId); item.AddListener(); } UpdateAwardTimes(); //RandomAward(); // 不显示钻石翻牌 if (mRes.mExtraAwardTimes < 1 || mRes.mExtraAwardBoxId < 0) { mLeftExtraAwardTimes = 0; if (mState == UIState.STATE_3) { mState = UIState.STATE_DESTROY; mOKBtn.SetActive(true); } } else { mLeftExtraAwardTimes = mRes.mExtraAwardTimes; } mExtraTimesLabel1.text = GetCardTypeText(mRes.mExtraAwardCostId); foreach (StageBalanceItemUI item in mItemExtraList) { item.SetCostId(mRes.mExtraAwardCostId); item.AddListener(); } UpdateExtraAwardTimes(); //RandomExtraAward(); }
private void OnAcceptQuestResponse(EventBase evt) { QuestEvent e = evt as QuestEvent; if (!mUnlockDatas.ContainsKey(ConditionType.QUEST_ACCEPT)) { return; } ArrayList list = mUnlockDatas[ConditionType.QUEST_ACCEPT]; if (list == null) { return; } // 检查是否有因此解锁的关卡 System.Type type = typeof(Scene_StageSceneTableItem); foreach (StageUnlockData unlockdata in list) { if (unlockdata.condition == null) { continue; } if (unlockdata.condition.mParam1 != e.mQuestId) { continue; } if (!DataManager.Scene_StageSceneTable.ContainsKey(unlockdata.stageid)) { continue; } bool success = true; Scene_StageSceneTableItem stageres = DataManager.Scene_StageSceneTable[unlockdata.stageid] as Scene_StageSceneTableItem; for (uint i = 0; i < Scene_StageSceneTableItem.MAX_UNLOCK_CONDITION_COUNT; ++i) { System.Reflection.FieldInfo fieldid = type.GetField("mUnlockCondId" + i.ToString()); int unlockcondid = (int)fieldid.GetValue(stageres); if (unlockcondid < 0) { continue; } if (!ConditionManager.Instance.CheckCondition(unlockcondid)) { success = false; break; } } // 有因此解锁的关卡 if (success) { UnlockStageActionParam param = new UnlockStageActionParam(); param.stageid = unlockdata.stageid; Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_SCENE_UNLOCK, param); } } }