using UnityEngine; using FairyGUI; using UI.OpenServerActivity; using UI.CommonGame; using System.Collections.Generic; using System.Linq; using cfg.GfgCfg; namespace GFGGame { public class OpenServerStoryView : BaseWindow { private UI_OpenServerStoryUI _ui; private Dictionary> _storyLevelCfgs = new Dictionary>(); private int _activityId; private int _activityType; private ActivityOpenCfg _activityCfg; //private ValueBarController _valueBarController; public override void Dispose() { // if (_valueBarController != null) // { // _valueBarController.Dispose(); // _valueBarController = null; // } 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; //_valueBarController = new ValueBarController(_ui.m_valueBar); _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_list.itemRenderer = RenderListItem; } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); // _valueBarController.OnShown(); // _valueBarController.UpdateList(new List() { ConstItemID.GET_TICKETS }); _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 = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId); _storyLevelCfgs.Clear(); _ui.m_list.numItems = _activityCfg.Params1.Count; } protected override void OnHide() { base.OnHide(); //_valueBarController.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 = CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]); var storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.DataList .Where(a => a.Type == activityStoryCfg.Type && a.SubType == activityStoryCfg.SubType && a.ChapterId == _activityCfg.Params4[index]).ToList(); _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].BonusOnce[0].Count.ToString(); ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(storyLevelCfg[0].BonusOnce[0].ItemId); 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.NeedItems[0].ItemId) || ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] < activityStoryCfg.NeedItems[0].Count)) { 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.NeedItems[0].ItemId) && ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] >= activityStoryCfg.NeedItems[0].Count)) { redVisible = true; } RedDotController.Instance.SetComRedDot(item.target, redVisible, "", posRedX, posRedY); if (activityStoryCfg.NeedItems.Count > 0) { int count; if (ItemDataManager.ItemCollect.TryGetValue(activityStoryCfg.NeedItems[0].ItemId, out count)) { if (count < activityStoryCfg.NeedItems[0].Count) { item.m_openCloseType.selectedIndex = 0; item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId], activityStoryCfg.NeedItems[0].Count); ItemCfg itemNeedCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId); item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg); } else { item.m_openCloseType.selectedIndex = 1; } } else { item.m_openCloseType.selectedIndex = 0; item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", 0, activityStoryCfg.NeedItems[0].Count); ItemCfg itemNeedCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId); 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 = CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]); StoryLevelCfg storyLevelCfg = _storyLevelCfgs[index][0]; if (index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id)) { PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡"); return; } if (index > 0) { int count; if (ItemDataManager.ItemCollect.TryGetValue(activityStoryCfg.NeedItems[0].ItemId, out count)) { if (count < activityStoryCfg.NeedItems[0].Count) { PromptController.Instance.ShowFloatTextPrompt("需收集物达到开启需求"); return; } } else { PromptController.Instance.ShowFloatTextPrompt("需收集物达到开启需求"); return; } } MainStoryDataManager.currentLevelCfgId = storyLevelCfg.Id; InstanceZonesController.ShowLevelView(storyLevelCfg.Id, StudioDataManager.Instance.OnFinishStudioStoryLevel); } } }