using ET; using UI.Field; using UnityEngine; namespace GFGGame { public class FieldView : BaseWindow { private UI_FieldUI _ui; private int _curLevelId; private FieldCfg _curCfg; private FieldDataManager _dataManager; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_FieldUI.PACKAGE_NAME; _ui = UI_FieldUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_btnGo.onClick.Add(OnClickBtnGo); _ui.m_btnTask.onClick.Add(OnBtnTaskClick); _ui.m_c1.onChanged.Add(OnDifficultyChange); } protected override void OnShown() { base.OnShown(); _dataManager = FieldDataManager.Instance; _dataManager.difficulty = _ui.m_c1.selectedIndex; _dataManager.currFightIndex = 0; _curCfg = _dataManager.GetFieldCfgByDifficulty(_ui.m_c1.selectedIndex); _curLevelId = _dataManager.GetLevelIdByDifficulty(_dataManager.difficulty, _dataManager.currFightIndex); FieldCfg[] cfgs = FieldCfgArray.Instance.dataArray; for (int i = 0; i < cfgs.Length; i++) { bool isPass = InstanceZonesDataManager.CheckLevelPass(cfgs[i].storyLvId); _ui.target.GetChild("btn" + i).asButton.GetChild("imgLock").asImage.visible = !isPass; } UpdateView(); _ui.m_proTaskReward.max = 100; _ui.m_proTaskReward.value = 88; } protected override void OnHide() { base.OnHide(); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(FieldView).FullName); } private void OnDifficultyChange() { FieldCfg cfg = _dataManager.GetFieldCfgByDifficulty(_ui.m_c1.selectedIndex); bool isPass = InstanceZonesDataManager.CheckLevelPass(cfg.storyLvId); if (!isPass && _ui.m_c1.selectedIndex != ConstInstanceZonesSubType.Normal) { _ui.m_c1.selectedIndex = _dataManager.difficulty; StoryLevelCfg storyLevelCfg = StoryLevelCfgArray.Instance.GetCfg(cfg.storyLvId); string str = string.Format("完成主线{0}-{1}解锁", storyLevelCfg.chapterId, storyLevelCfg.order); PromptController.Instance.ShowFloatTextPrompt(str); return; } if (_dataManager.fieldInfos.highestLvls[_ui.m_c1.selectedIndex] < cfg.num && _ui.m_c1.selectedIndex != ConstInstanceZonesSubType.Normal) { _ui.m_c1.selectedIndex = _dataManager.difficulty; PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡"); return; } _dataManager.difficulty = _ui.m_c1.selectedIndex; _curCfg = _dataManager.GetFieldCfgByDifficulty(_ui.m_c1.selectedIndex); _curLevelId = _dataManager.GetLevelIdByDifficulty(_ui.m_c1.selectedIndex, _dataManager.currFightIndex); UpdateView(); } private void UpdateView() { _ui.m_txtScore.text = ConstDressUpScoreType.scoreTypeList()[_dataManager.fieldInfos.theme].ToString(); _ui.m_txtMaxLv.text = string.Format("最高记录:{0}/{1}", _dataManager.fieldInfos.highestLvls[_dataManager.difficulty], _curCfg.num); _ui.m_txtConsume.text = string.Format("x{0}", _curCfg.needPower); } private void OnClickBtnGo() { if (GameGlobal.myNumericComponent.GetAsInt(NumericType.Power) < _curCfg.needPower) { PromptController.Instance.ShowFloatTextPrompt("体力不足"); return; } if (_dataManager.fieldInfos.bonusWeekly >= _dataManager.fieldInfos.bonusMaxLimit) { Alert.Show("本周可获得奖励已达上限,是否继续挑战?") .SetLeftButton(true) .SetRightButton(true, "确定", (object data) => { StartFight(); }); } else { StartFight(); } } private void StartFight() { ViewManager.Show(ViewName.DRESS_UP_FIGHT_VIEW, _curLevelId, new object[] { typeof(FieldView).Name, this.viewData }, true); InstanceZonesDataManager.currentLevelCfgId = _curLevelId; } private void OnBtnTaskClick() { ViewManager.Show(); } } }