using FairyGUI; using UI.ActivityAfternoonTea; using UI.CommonGame; using ET; using System.Collections.Generic; namespace GFGGame { public class ActivitySyntheticView : BaseWindow { private UI_ActivitySyntheticUI _ui; private ValueBarController _valueBarController; private SuitCfg _suitCfg; public override void Dispose() { if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ActivitySyntheticUI.PACKAGE_NAME; _ui = UI_ActivitySyntheticUI.Create(); this.viewCom = _ui.target; isfullScreen = true; isReturnView = true; _valueBarController = new ValueBarController(_ui.m_valueBar); _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_listSynthetic.itemRenderer = RenderListSyntheticItem; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gf_hdzy_bj"); } protected override void OnShown() { base.OnShown(); var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic); ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.ActivityId); _suitCfg = SuitCfgArray.Instance.GetCfg(activityOpenCfg.paramsArr[0]); ItemCfg itemSyntheticCfg = ItemCfgArray.Instance.GetCfg(_suitCfg.partsArr[0]); _valueBarController.OnShown(); _valueBarController.UpdateList(new List() { itemSyntheticCfg.syntheticMateriarsArr[0][0], ConstItemID.GOLD }); _ui.m_listSynthetic.numItems = _suitCfg.partsArr.Length; RefreshTimeText(); _ui.m_txtTips.SetVar("name", _suitCfg.name).FlushVars(); Timers.inst.Add(1, 0, UpdateTime); } protected override void OnHide() { base.OnHide(); _valueBarController.OnHide(); Timers.inst.Remove(UpdateTime); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemChange); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, OnItemChange); } private void OnItemChange(EventContext context) { var itemId = (int)context.data; ItemCfg itemSyntheticCfg = ItemCfgArray.Instance.GetCfg(_suitCfg.partsArr[0]); if (itemId != itemSyntheticCfg.syntheticMateriarsArr[0][0] && itemId != itemSyntheticCfg.syntheticMateriarsArr[1][0]) return; _ui.m_listSynthetic.numItems = _suitCfg.partsArr.Length; } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(ActivitySyntheticView).FullName); } private void UpdateTime(object param) { RefreshTimeText(); } private void RefreshTimeText() { var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic); ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.ActivityId); long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.endTime) - TimeHelper.ServerNow(); string strTime = TimeUtil.FormattingTimeTo_DDHHmm(time); _ui.m_txtTime.text = "剩余:" + strTime; } private void RenderListSyntheticItem(int index, GObject obj) { UI_SyntheticItemUI comBox = UI_SyntheticItemUI.Proxy(obj); UI_ComItem item1 = UI_ComItem.Proxy(comBox.m_item1); ItemCfg itemSyntheticCfg = ItemCfgArray.Instance.GetCfg(_suitCfg.partsArr[index]); var materiarsArr = itemSyntheticCfg.syntheticMateriarsArr; ItemCfg itemCfg1 = ItemCfgArray.Instance.GetCfg(materiarsArr[0][0]); RarityIconController.UpdateRarityIcon(item1.m_loaRarity, itemCfg1.id, false); string ext1 = ItemUtil.GetItemResExt(itemCfg1.itemType, itemCfg1.subType, true); item1.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg1.res, ext1); if(item1.target.data == null) item1.target.onClick.Add(OnSelectorItemClick); item1.target.data = materiarsArr[0][0]; item1.m_QualityType.selectedIndex = itemCfg1.rarity - 1; item1.m_txtCount.text = materiarsArr[0][1].ToString(); UI_ComItem.ProxyEnd(); UI_ComItem item2 = UI_ComItem.Proxy(comBox.m_item2); ItemCfg itemCfg2 = ItemCfgArray.Instance.GetCfg(materiarsArr[1][0]); RarityIconController.UpdateRarityIcon(item2.m_loaRarity, itemCfg2.id, false); string ext2 = ItemUtil.GetItemResExt(itemCfg2.itemType, itemCfg2.subType, true); item2.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg2.res, ext2); if (item2.target.data == null) item2.target.onClick.Add(OnSelectorItemClick); item2.target.data = materiarsArr[1][0]; item2.m_QualityType.selectedIndex = itemCfg2.rarity - 1; item2.m_txtCount.text = materiarsArr[1][1].ToString(); UI_ComItem.ProxyEnd(); UI_ComItem item3 = UI_ComItem.Proxy(comBox.m_item3); ItemCfg itemCfg3 = ItemCfgArray.Instance.GetCfg(_suitCfg.partsArr[index]); RarityIconController.UpdateRarityIcon(item3.m_loaRarity, itemCfg3.id, false); string ext3 = ItemUtil.GetItemResExt(itemCfg3.itemType, itemCfg3.subType, true); item3.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg3.res, ext3); if (item3.target.data == null) item3.target.onClick.Add(OnSelectorItemClick); item3.target.data = _suitCfg.partsArr[index]; item3.m_QualityType.selectedIndex = itemCfg3.rarity - 1; item3.m_txtCount.text = "1"; UI_ComItem.ProxyEnd(); if (ItemDataManager.GetItemNum(_suitCfg.partsArr[index]) > 0) { comBox.m_btnType.selectedIndex = 2; } else if (ItemDataManager.GetItemNum(materiarsArr[0][0]) >= materiarsArr[0][1] && ItemDataManager.GetItemNum(materiarsArr[1][0]) >= materiarsArr[1][1]) { comBox.m_btnType.selectedIndex = 1; if(comBox.m_btnMake.data == null) comBox.m_btnMake.onClick.Add(OnClickBtnMake); comBox.m_btnMake.data = _suitCfg.partsArr[index]; } else { comBox.m_btnType.selectedIndex = 0; if (comBox.m_btnGet.data == null) comBox.m_btnGet.onClick.Add(OnClickBtnGet); comBox.m_btnGet.data = index; } RedDotController.Instance.SetComRedDot(comBox.m_btnMake, comBox.m_btnType.selectedIndex == 1); UI_SyntheticItemUI.ProxyEnd(); } private async void OnClickBtnMake(EventContext context) { if (!(context.sender is GObject obj)) return; int itemID = (int)obj.data; var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic); bool result = await ActivityTeaSProxy.ReqItemSynthetic(activityInfo.ActivityId, itemID); if (result) { _ui.m_listSynthetic.numItems = _suitCfg.partsArr.Length; } } private void OnClickBtnGet(EventContext context) { if (!(context.sender is GObject obj)) return; int index = (int)obj.data; ItemCfg itemSyntheticCfg = ItemCfgArray.Instance.GetCfg(_suitCfg.partsArr[index]); var materiarsArr = itemSyntheticCfg.syntheticMateriarsArr; if (ItemDataManager.GetItemNum(materiarsArr[0][0]) < materiarsArr[0][1]) MainControllerr.GotoStoryChapter(); else ItemUtil.BuyCurrency(materiarsArr[1][0], materiarsArr[1][1] - ItemDataManager.GetItemNum(materiarsArr[1][0])); } private void OnSelectorItemClick(EventContext context) { if (!(context.sender is GObject obj)) return; int itemID = (int)obj.data; GoodsItemTipsController.ShowItemTips(itemID); } } }