using UnityEngine; using FairyGUI; using UI.OpenServerActivity; using System.Collections.Generic; 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 = ActivityOpenCfgArray.Instance.GetCfg(_activityId); ActivityFightCfg fightCfg = ActivityFightCfgArray.Instance.GetCfg(activityOpenCfg.params3Arr[0]); _ui.m_list.numItems = fightCfg.activitySuitIdArr.Length; StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelID); StudioDataManager.Instance.filingChapterId = levelCfg.chapterId; float addition = StudioDataManager.Instance.GetAddition(ConstInstanceZonesType.PureFight); addition = addition / 10000 * 100; _ui.m_txtPer.text = "(" + addition + "%)"; } 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 = ActivityOpenCfgArray.Instance.GetCfg(_activityId); ActivityFightCfg fightCfg = ActivityFightCfgArray.Instance.GetCfg(activityOpenCfg.params3Arr[0]); int suitId = fightCfg.activitySuitIdArr[index]; SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId); listItem.m_txtName.text = suitCfg.name; if (listItem.m_list.data == null) { listItem.m_list.itemRenderer = ListItemRewardRender; } listItem.m_list.data = suitCfg.partsArr; listItem.m_list.numItems = suitCfg.partsArr.Length; 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 = ItemCfgArray.Instance.GetCfg(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() { //边框左上角特效 _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up"); //边框右下角特效 _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down"); } } }