using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; public class EquipPanel : PopUpPanel { public Transform craftContainer; public EquipCraftItemRenderer craftItemPrefab; public Transform equipContainer; public EquipIcon equipItemPrefab; public Transform equipedContainer; public EquipIcon equipedItemPrefab; public EquipInfo equipInfo; public Transform equipedStyleContainer; public Button recommandBtn; public Button customizeBtn; public Text recommandLabel; public Text customizeLabel; private CraftConfigData craftData; private EquipedData equipedData; void Awake() { equipItemPrefab.equipPanel = this; equipedItemPrefab.equipPanel = this; List craftList = CraftManager.GetInstance ().GetDataList (); craftItemPrefab.equipPanel = this; ListHelper.FillList (craftContainer, craftList, craftItemPrefab); ListHelper.HideAll (equipContainer); ListHelper.HideAll (equipedContainer); Shown (); equipInfo.equipPanel = this; recommandLabel.text = Language.GetStr ("EquipPanel", "recommand"); customizeLabel.text = Language.GetStr ("EquipPanel", "customize"); SelectCraft (craftContainer.GetChild(0).GetComponent()); } protected override void Shown () { EquipManager.GetInstance ().InventoryUpdate.AddListener (OnInventoryUpdate); EquipManager.GetInstance ().RequestInventory (); } private void OnInventoryUpdate() { EquipManager.GetInstance ().InventoryUpdate.RemoveListener (OnInventoryUpdate); SelectCraft (craftContainer.GetChild(0).GetComponent()); List list = EquipManager.GetInstance ().GetInventoryList (); ListHelper.FillList (equipContainer, list, equipItemPrefab); if (list.Count > 0) SelectEquip (equipItemPrefab); else SelectEquip (null); } public void SelectCraft(EquipCraftItemRenderer itemRenderer) { craftData = itemRenderer.data as CraftConfigData; ButtonUtil.TabSelected (itemRenderer, craftContainer); if(EquipManager.GetInstance().initialized) { equipedData = EquipManager.GetInstance ().GetEquipedData (craftData.id); SelectEquipedStyle (equipedData.styleType.GetHashCode ()); } } public void SelectEquip(EquipIcon icon) { if (icon != null) { ButtonUtil.TabSelected (icon, equipContainer); equipInfo.SetEquip (icon.data as Equipment); } else { equipInfo.SetEquip (null); } } public void SelectEquiped(EquipIcon icon) { } public void Equip(Equipment equip) { if(!equipedData.IsEquiped(equip)) { bool replaced = equipedData.ReplaceCustomize (null, equip); if (!replaced) { Debuger.LogError ("Can not replaced"); } SelectEquipedStyle (equipedData.styleType.GetHashCode()); } } public void SelectEquipedStyle(int index) { ButtonUtil.TabSelected (index, equipedStyleContainer); equipedData.styleType = EquipedData.GetSytleTypeByCode(index); ListHelper.FillList (equipedContainer, equipedData.GetCurrentList(), equipedItemPrefab); } private static EquipPanel currentPanel; public static EquipPanel Show() { if (currentPanel != null) { currentPanel.gameObject.SetActive (true); PopUpManager.AddToMainCanvas (currentPanel.gameObject); } else currentPanel = PopUpManager.AddPopUp (Resources.Load ("Prefabs/UI/EquipPanel/EquipPanel"), null, true); currentPanel.Open (); return currentPanel; } }