| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | using UnityEngine;using FairyGUI;using UI.OpenServerActivity;using UI.CommonGame;using System.Collections.Generic;namespace GFGGame{    public class OpenServerStoryView : BaseWindow    {        private UI_OpenServerStoryUI _ui;        private Dictionary<int,List<StoryLevelCfg>> _storyLevelCfgs = new Dictionary<int, List<StoryLevelCfg>>();        private int _activityId;        private int _activityType;        private ActivityOpenCfg _activityCfg;        public override void Dispose()        {            if (_ui != null)            {                _ui.Dispose();                _ui = null;            }            base.Dispose();        }        protected override void Init()        {            base.Init();        }        protected override void OnInit()        {            base.OnInit();            packageName = UI_OpenServerStoryUI.PACKAGE_NAME;            _ui = UI_OpenServerStoryUI.Create();            viewCom = _ui.target;            isfullScreen = true;            isReturnView = true;            _ui.m_btnBack.onClick.Add(OnClickBtnBack);            _ui.m_list.itemRenderer = RenderListItem;        }        protected override void AddEventListener()        {            base.AddEventListener();        }        protected override void OnShown()        {            base.OnShown();            _activityType = (int)this.viewData;            StudioDataManager.Instance.VIEW_NAME = typeof(OpenServerStoryView).FullName;            StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _activityType;            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("sdcy_jq_bg");            _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(_activityType);            _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(_activityId);            _storyLevelCfgs.Clear();            _ui.m_list.numItems = _activityCfg.params4Arr.Length;        }        protected override void OnHide()        {            base.OnHide();        }        protected override void RemoveEventListener()        {            base.RemoveEventListener();        }        private void OnClickBtnBack()        {            ViewManager.GoBackFrom(typeof(OpenServerStoryView).FullName);        }        private void RenderListItem(int index, GObject obj)        {            int posRedX = -130;            int posRedY = 30;            bool redVisible = false;            UI_StoryItem item = UI_StoryItem.Proxy(obj);            ActivityStoryCfg activityStoryCfg = ActivityStoryCfgArray.Instance.GetCfg(_activityCfg.params4Arr[index]);            var storyLevelCfg = StoryLevelCfgArray.Instance.GetCfgsBytypeAndsubTypeAndchapterId(activityStoryCfg.type, activityStoryCfg.subType, _activityCfg.params4Arr[index]);            _storyLevelCfgs.Add(index, storyLevelCfg);            item.m_posType.selectedIndex = index % 2;            item.m_txtTitle.text = activityStoryCfg.name;            item.m_txtNumber.text = "0" + (index + 1);            item.m_rewardItem.m_txtCount.text = storyLevelCfg[0].bonusOnceArr[0][1].ToString();            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(storyLevelCfg[0].bonusOnceArr[0][0]);            item.m_rewardItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);            if (item.m_rewardItem.target.data == null)                item.m_rewardItem.target.onClick.Add(OnClickIcon);            item.m_rewardItem.target.data = itemCfg.id;            if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id) || !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) || ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] < activityStoryCfg.needItemsArr[0][1]))            {                item.m_storyImageType.selectedIndex = 0;            }            else {                 item.m_storyImageType.selectedIndex = index + 1;            }            if (item.m_posType.selectedIndex == 1) {                posRedX = -52;                posRedY = 30;            }            if ((index == 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].id)) || (index > 0 && InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id) && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].id) && ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.needItemsArr[0][0]) && ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] >= activityStoryCfg.needItemsArr[0][1]))            {                redVisible = true;            }            RedDotController.Instance.SetComRedDot(item.target, redVisible, "", posRedX, posRedY);            if (activityStoryCfg.needItemsArr.Length > 0) {                 item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]], activityStoryCfg.needItemsArr[0][1]);                ItemCfg itemNeedCfg = ItemCfgArray.Instance.GetCfg(activityStoryCfg.needItemsArr[0][0]);                item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);            }            if (item.m_loaItemBg.data == null)                item.m_loaItemBg.onClick.Add(OnClickBtnPlay);            item.m_loaItemBg.data = index;            UI_StoryItem.ProxyEnd();        }        private void OnClickIcon(EventContext context)        {            GObject obj = context.sender as GObject;            int itemId = (int)obj.data;            GoodsItemTipsController.ShowItemTips(itemId);        }        private void OnClickBtnPlay(EventContext context)        {            GObject obj = context.sender as GObject;            int index = (int)obj.data;            ActivityStoryCfg activityStoryCfg = ActivityStoryCfgArray.Instance.GetCfg(_activityCfg.params4Arr[index]);            StoryLevelCfg storyLevelCfg = _storyLevelCfgs[index][0];            if (index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].id))            {                PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡");                return;            }            if(index > 0 && ItemDataManager.ItemCollect[activityStoryCfg.needItemsArr[0][0]] < activityStoryCfg.needItemsArr[0][1])            {                PromptController.Instance.ShowFloatTextPrompt("需收集物达到开启需求");                return;            }            MainStoryDataManager.currentLevelCfgId = storyLevelCfg.id;            InstanceZonesController.ShowLevelView(storyLevelCfg.id, StudioDataManager.Instance.OnFinishStudioStoryLevel);        }    }}
 |