using UnityEngine; using FairyGUI; using UI.OpenServerActivity; using System.Collections.Generic; using cfg.GfgCfg; using ET; using UI.CommonGame; namespace GFGGame { public class OpenServerSuitAdditionView : BaseWindow { private UI_OpenServerSuitAdditionUI _ui; private int _activityType; private int _activityId; private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); } protected override void OnInit() { base.OnInit(); packageName = UI_OpenServerSuitAdditionUI.PACKAGE_NAME; _ui = UI_OpenServerSuitAdditionUI.Create(); viewCom = _ui.target; this.viewCom.Center(); this.modal = true; _ui.m_list.itemRenderer = ListItemRenderer; AddEffect(); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _activityType = (int)(this.viewData as object[])[0]; int levelID = (int)(this.viewData as object[])[1]; _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(_activityType); ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId); ActivityFightCfg fightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]); _ui.m_list.numItems = fightCfg.ActivitySuitId.Count; StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(levelID); StudioDataManager.Instance.filingChapterId = levelCfg.ChapterId; float addition = StudioDataManager.Instance.GetAddition(ConstInstanceZonesType.PureFight); addition = addition / 10000 * 100; _ui.m_txtPer.text = "(" + addition + "%)"; _ui.m_txtTips.SetVar("name", activityOpenCfg.ThemeName).FlushVars(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void ListItemRenderer(int index, GObject item) { UI_suitAdditionItem listItem = UI_suitAdditionItem.Proxy(item); ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId); ActivityFightCfg fightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(activityOpenCfg.Params3[0]); int suitId = fightCfg.ActivitySuitId[index]; SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId); listItem.m_txtName.text = suitCfg.Name; if (listItem.m_list.data == null) { listItem.m_list.itemRenderer = ListItemRewardRender; } listItem.m_list.data = suitCfg.Parts; listItem.m_list.numItems = suitCfg.Parts.Count; listItem.m_list.ResizeToFit(); listItem.target.height = listItem.m_list.y + listItem.m_list.height; UI_suitAdditionItem.ProxyEnd(); } private void ListItemRewardRender(int index, GObject obj) { int itemId = (int)(obj.parent.data as int[])[index]; UI_ComItem item = UI_ComItem.Proxy(obj); ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId); RarityIconController.UpdateRarityIcon(item.m_loaRarity, itemId, false); item.target.data = itemCfg; item.m_QualityType.selectedIndex = itemCfg.Rarity - 1; item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); item.m_txtCount.text = "1"; float addition = 0; if (ItemDataManager.GetItemNum(itemId) > 0) { addition += itemCfg.Addition; addition = addition / 10000 * 100; item.m_txtAddition.text = string.Format("获得加成:{0}%", addition); item.m_Lock.selectedIndex = 3; } else item.m_Lock.selectedIndex = 2; UI_ComItem.ProxyEnd(); } private void AddEffect() { //边框左上角特效 EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up", onComplete: (effect) => { if (effect != null) { _effectUI1 = effect; } }); //边框右下角特效 EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down", onComplete: (effect) => { if (effect != null) { _effectUI2 = effect; } }); } } }