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; private int _selectedIndex = 0; 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); FieldDataManager.Instance.fieldInfos.theme = 1; FieldDataManager.Instance.fieldInfos.bonusWeekly = 250; FieldDataManager.Instance.fieldInfos.bonusMaxLimit = 800; } protected override void OnShown() { base.OnShown(); _selectedIndex = 0; _ui.m_c1.selectedIndex = _selectedIndex; _curCfg = FieldCfgArray.Instance.dataArray[_selectedIndex]; _dataManager = FieldDataManager.Instance; _dataManager.chapterId = _curCfg.id; 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(); } protected override void OnHide() { base.OnHide(); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(FieldView).FullName); } private void OnDifficultyChange() { FieldCfg cfg = FieldCfgArray.Instance.dataArray[_selectedIndex]; bool isPass = InstanceZonesDataManager.CheckLevelPass(cfg.storyLvId); if (_ui.m_c1.selectedIndex != ConstInstanceZonesSubType.Normal && !isPass) { _ui.m_c1.selectedIndex = _selectedIndex; StoryLevelCfg storyLevelCfg = StoryLevelCfgArray.Instance.GetCfg(cfg.storyLvId); string str = string.Format("完成主线{0}-{1}解锁", storyLevelCfg.chapterId, storyLevelCfg.order); PromptController.Instance.ShowFloatTextPrompt(str); return; } int priorIndex = _ui.m_c1.selectedIndex - 1; FieldCfg priorfg = priorIndex >= 0 ? FieldCfgArray.Instance.dataArray[priorIndex] : null; if (priorfg != null && _dataManager.GetHighestLvByChapterId(priorfg.id) < cfg.num) { _ui.m_c1.selectedIndex = _selectedIndex; PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡"); return; } _selectedIndex = _ui.m_c1.selectedIndex; _curCfg = cfg; _dataManager.chapterId = _curCfg.id; UpdateView(); } private void UpdateView() { _ui.m_txtScore.text = ConstDressUpScoreType.scoreTypeList()[_dataManager.fieldInfos.theme].ToString(); _ui.m_txtMaxLv.text = string.Format("最高记录:{0}/{1}", _dataManager.GetHighestLvByChapterId(_dataManager.chapterId), _curCfg.num); _ui.m_txtConsume.text = string.Format("x{0}", _curCfg.needPower); _ui.m_proTaskReward.max = _dataManager.fieldInfos.bonusMaxLimit; _ui.m_proTaskReward.value = _dataManager.fieldInfos.bonusWeekly; } 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() { int curLevelId = StoryLevelCfgArray.Instance.GetCfgs(_curCfg.type, 0, _curCfg.id)[0].id; ViewManager.Show(ViewName.DRESS_UP_FIGHT_VIEW, curLevelId, new object[] { typeof(FieldView).Name, this.viewData }, true); InstanceZonesDataManager.currentLevelCfgId = curLevelId; } private void OnBtnTaskClick() { ViewManager.Show(); } } }