using System.Collections; using UnityEngine; using UI.ActivityHuaRongDao; using System.Collections.Generic; using FairyGUI; namespace GFGGame { public class ActivityHuaRongDaoEntryView : BaseWindow { private UI_ActivityHuaRongDaoEntryUI _ui; public static int curLevel; private int haveTimes = 1; private List IDList; protected override void OnInit() { base.OnInit(); packageName = UI_ActivityHuaRongDaoEntryUI.PACKAGE_NAME; _ui = UI_ActivityHuaRongDaoEntryUI.Create(); viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("quanping_moren_bg"); _ui.m_btnStart.onClick.Add(OnBtnStartClick); _ui.m_btnRule.onClick.Add(OnBtnRuleClick); _ui.m_btnBack.onClick.Add(OnBtnBackClick); InitIDList(); _ui.m_scrollPane.m_list.itemRenderer = RenderListReward; } public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnShown() { base.OnShown(); InitInfo(); } protected override void OnHide() { base.OnHide(); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.ACTIVITY_HUARONGDAO_UPDATE, InitInfo); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.ACTIVITY_HUARONGDAO_UPDATE, InitInfo); } private void InitIDList() { IDList = new List(); HuarongRoadGame[] cfgs = HuarongRoadGameArray.Instance.dataArray; foreach (var t in cfgs) { IDList.Add(t.id); } } private void InitInfo() { _ui.m_scrollPane.m_list.numItems = IDList.Count; _ui.m_curLevel.text = curLevel.ToString(); _ui.m_challengeTimes.SetVar("have", haveTimes.ToString()) .SetVar("sum", HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel]).comsumeLimit.ToString()).FlushVars(); _ui.m_scrollPane.m_list.ResizeToFit(); InitProgressWidth(); ProgressAutoLocate(); } private void ProgressAutoLocate() { _ui.m_scrollPane.target.scrollPane.posX = curLevel * (_ui.m_scrollPane.m_list.GetChildAt(0).width + _ui.m_scrollPane.m_list.columnGap); } private void OnBtnBackClick() { Hide(); } private void OnBtnRuleClick() { } private void OnBtnStartClick() { ViewManager.Show(HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel])); } private void InitProgressWidth() { GProgressBar gProgressBar = _ui.m_scrollPane.m_progress; // 根据列表 初始化进度条长度 float marginLeft = 149; gProgressBar.width = marginLeft + _ui.m_scrollPane.m_list.GetChildAt(_ui.m_scrollPane.m_list.numChildren - 1).position.x - _ui.m_scrollPane.m_list.GetChildAt(0).position.x; // 初始化进度条值 int indexDay = curLevel; gProgressBar.value = CalculateProgressValue(indexDay, _ui.m_scrollPane.m_list.numChildren); } private double CalculateProgressValue(int indexDay, int sumDay) { int defaultLen = 18; if (indexDay == sumDay) { return 100; } if (indexDay == 1) { return defaultLen; } return defaultLen + (100 - defaultLen) / (sumDay - 1) * (indexDay - 1); } private void RenderListReward(int index, GObject item) { item.data = index; UI_reward rewardUI = UI_reward.Proxy(item); rewardUI.m_level.m_levelNum.text = (index + 1).ToString(); rewardUI.m_level.m_light.SetSelectedIndex(curLevel > index ? 0 : 1); rewardUI.m_level.m_reward.touchable = (index >= curLevel); rewardUI.m_level.m_reward.data = index; rewardUI.m_level.m_reward.onClick.Add(OnClickReward); UI_reward.ProxyEnd(); } private void OnClickReward(EventContext eventContext) { GObject obj = (GObject)eventContext.sender; int id = (int)obj.data; ViewManager.Show(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr); } } }