using FairyGUI; using UI.ActivityAfternoonTea; using UI.CommonGame; using ET; using System.Collections.Generic; using cfg.GfgCfg; 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; } protected override void OnShown() { base.OnShown(); var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic); ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId); _suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(activityOpenCfg.Params1[0]); ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[0]); _valueBarController.OnShown(); _valueBarController.UpdateList(new List() { itemSyntheticCfg.SyntheticMateriars[0].ItemId, ConstItemID.GOLD }); _ui.m_listSynthetic.numItems = _suitCfg.Parts.Count; 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 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[0]); if (itemId != itemSyntheticCfg.SyntheticMateriars[0].ItemId && itemId != itemSyntheticCfg.SyntheticMateriars[1].ItemId) return; _ui.m_listSynthetic.numItems = _suitCfg.Parts.Count; } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(ActivitySyntheticView).FullName); } private void UpdateTime(object param) { RefreshTimeText(); } private void RefreshTimeText() { var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic); long curTime = ActivityDataManager.Instance.GetActivityTime(activityInfo.ActivityId); _ui.m_txtTime.text = "剩余:" + TimeUtil.FormattingTimeTo_DDHHmm(curTime); } 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 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[index]); var materiarsArr = itemSyntheticCfg.SyntheticMateriars; ItemCfg itemCfg1 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(materiarsArr[0].ItemId); 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].ItemId; item1.m_QualityType.selectedIndex = itemCfg1.Rarity - 1; item1.m_txtCount.text = materiarsArr[0].Count.ToString(); UI_ComItem.ProxyEnd(); UI_ComItem item2 = UI_ComItem.Proxy(comBox.m_item2); ItemCfg itemCfg2 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(materiarsArr[1].ItemId); 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].ItemId; item2.m_QualityType.selectedIndex = itemCfg2.Rarity - 1; item2.m_txtCount.text = materiarsArr[1].Count.ToString(); UI_ComItem.ProxyEnd(); UI_ComItem item3 = UI_ComItem.Proxy(comBox.m_item3); ItemCfg itemCfg3 = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[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.Parts[index]; item3.m_QualityType.selectedIndex = itemCfg3.Rarity - 1; item3.m_txtCount.text = "1"; UI_ComItem.ProxyEnd(); if (ItemDataManager.GetItemNum(_suitCfg.Parts[index]) > 0) { comBox.m_btnType.selectedIndex = 2; } else if (ItemDataManager.GetItemNum(materiarsArr[0].ItemId) >= materiarsArr[0].Count && ItemDataManager.GetItemNum(materiarsArr[1].ItemId) >= materiarsArr[1].Count) { comBox.m_btnType.selectedIndex = 1; if (comBox.m_btnMake.data == null) comBox.m_btnMake.onClick.Add(OnClickBtnMake); comBox.m_btnMake.data = _suitCfg.Parts[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.Parts.Count; } } private void OnClickBtnGet(EventContext context) { if (!(context.sender is GObject obj)) return; int index = (int)obj.data; ItemCfg itemSyntheticCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(_suitCfg.Parts[index]); var materiarsArr = itemSyntheticCfg.SyntheticMateriars; if (ItemDataManager.GetItemNum(materiarsArr[0].ItemId) < materiarsArr[0].Count) MainControllerr.GotoStoryChapter(); else ItemUtil.BuyCurrency(materiarsArr[1].ItemId, materiarsArr[1].Count - ItemDataManager.GetItemNum(materiarsArr[1].ItemId)); } private void OnSelectorItemClick(EventContext context) { if (!(context.sender is GObject obj)) return; int itemID = (int)obj.data; GoodsItemTipsController.ShowItemTips(itemID); } } }