using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; using Games.Item; using System; using GCGame.Table; public class CommitItemInfoController : UIControllerBase { public Button m_CloseBtn; //关闭 public Button m_SubmitBtn; //提交 public UIContainerSelect m_Container; //排列Item容器 public UInt64 m_SubItemID = 0; public int m_ClassID = -1; public static int m_MissionID = -1; public bool isGuid = false; public bool isClassId = false; public int m_itemCount = 0; public static int m_MissionBaseId = -1; List m_ShowItemList = new List(); void OnEnable() { //true的时候初始化面板 InitMyItemInfo(); } public static void setMissionId(int id, int m_MissionBID) { m_MissionBaseId = m_MissionBID; m_MissionID = id; } //提交任务的时候进行初始化 public void InitMyItemInfo() { Tab_MissionLootItem m_LootItem = TableManager.GetMissionLootItemByID(m_MissionID, 0); int m_ItemType = m_LootItem.SelectType; int m_ItemId = m_LootItem.DataID; m_itemCount = m_LootItem.ItemCount; //初始化可以提交的物品的信息 GameItemContainer BackPack = GameManager.gameManager.PlayerDataPool.BackPack; List itemList = ItemTool.ItemFilter(BackPack, 0); //过滤背包中所有物品 存储在ItemList中 if (itemList.Count == 0) { return; } //1 classID 2 dataId 0系统自动扣除 //对ItemList进行过滤 将可以提交的item存放在m_ShowItemList中 if (m_ItemType == 1) //物品ID { isGuid = true; for (int index = 0; index < itemList.Count; index++) { if (itemList[index].DataID == m_ItemId) { m_ShowItemList.Add(new CommonItemBackPackItem.BackPackItem() { GameItem = itemList[index], IsPosLock = false }); } } } else if(m_ItemType == 2) //classId { isClassId = true; for (int index = 0; index < itemList.Count; index++) { Tab_MissionSortItem sortItem = TableManager.GetMissionSortItemByID(m_ItemId, 0); if(sortItem != null) { Tab_CommonItem commonItem = TableManager.GetCommonItemByID(itemList[index].DataID, 0); if (commonItem == null) return; if(sortItem.ItemClass != -1 && commonItem.ClassID != sortItem.ItemClass) { continue; } if(sortItem.ItemSubClass != -1 && commonItem.SubClassID != sortItem.ItemSubClass) { continue; } if (sortItem.ItemQuality != -1 && commonItem.Quality > sortItem.ItemQuality) { continue; } if (sortItem.ItemSubClass != -1 && commonItem.SubClassID != sortItem.ItemSubClass) { continue; } if (sortItem.ItemLevelBot != -1 && commonItem.MinLevelRequire < sortItem.ItemLevelBot) { continue; } if (sortItem.ItemLevelTop != -1 && commonItem.MinLevelRequire > sortItem.ItemLevelTop) { continue; } if (sortItem.Profession != -1 && commonItem.ProfessionRequire != sortItem.Profession) { continue; } //满足以上条件的,即为所需求的物品 m_ShowItemList.Add(new CommonItemBackPackItem.BackPackItem() { GameItem = itemList[index], IsPosLock = false }); } } } //初始化Content界面 m_Container.InitSelectContent(m_ShowItemList, null, ItemClick); //默认的选择第一个物品 if(m_ShowItemList.Count > 0) { m_SubItemID = (ulong)m_ShowItemList[0].GameItem.Guid; m_ClassID = (int)m_ShowItemList[0].GameItem.GetClass(); } } public void ItemClick(object obj) { CommonItemBackPackItem.BackPackItem backPackItem = obj as CommonItemBackPackItem.BackPackItem; if (backPackItem.GameItem != null && backPackItem.GameItem.IsValid()) { ShowTooltips(backPackItem.GameItem); } } private void ShowTooltips(GameItem gameItem) { if (gameItem != null && gameItem.IsValid()) { if (gameItem.IsEquipMent()) { EquipTooltipsLogic.ShowEquipTooltip(gameItem, ItemTooltipsLogic.ShowType.Info, transform.position); } else { ItemTooltipsLogic.ShowItemTooltip(gameItem, ItemTooltipsLogic.ShowType.Info, transform.position); } //记录点击的ID m_SubItemID = gameItem.Guid; m_ClassID = gameItem.GetClass(); } } public void MyClickPanelEvent() { UIManager.CloseUI(UIInfo.CommitItemPanel); //关闭当前Tip窗口 if(MissionInfoController.Instance()) { UIManager.CloseUI(UIInfo.MissionInfoController); } } public void MyClickSubmiBtnEvent() { //提交点击的物品的GUID 数量 if (m_SubItemID != 0) { // 给服务器发包 // 给服务器发包 CG_COMPLETEMISSION askMission = (CG_COMPLETEMISSION)PacketDistributed.CreatePacket(MessageID.PACKET_CG_COMPLETEMISSION); askMission.SetMissionID(m_MissionBaseId); ItemByNum commitItem = new ItemByNum(); commitItem.SetItemGuid(m_SubItemID); commitItem.SetItemNum(m_itemCount); askMission.AddItems(commitItem); askMission.SendPacket(); } //不管选没选,都关闭窗口 UIManager.CloseUI(UIInfo.CommitItemPanel); //关闭当前Tip窗口 } private void OnDisable() { isClassId = false; isGuid = false; m_ShowItemList.Clear(); } }