123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- 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;
- public EquipTip equipTip;
- private Equipment holdEquipment;
- void Awake()
- {
- equipItemPrefab.equipPanel = this;
- equipedItemPrefab.equipPanel = this;
- craftItemPrefab.equipPanel = this;
- equipInfo.equipPanel = this;
- equipTip.equipPanel = this;
- List<CraftConfigData> craftList = CraftManager.GetInstance ().GetDataList ();
- ListHelper.FillList<CraftConfigData> (craftContainer, craftList, craftItemPrefab);
- ListHelper.HideAll (equipContainer);
- ListHelper.HideAll (equipedContainer);
- Shown ();
- recommandLabel.text = Language.GetStr ("EquipPanel", "recommand");
- customizeLabel.text = Language.GetStr ("EquipPanel", "customize");
- SelectCraft (craftContainer.GetChild(0).GetComponent<EquipCraftItemRenderer>());
- ClearHoldEquipment ();
- }
- 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<EquipCraftItemRenderer>());
- List<Equipment> list = EquipManager.GetInstance ().GetInventoryList ();
- ListHelper.FillList<Equipment> (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 int selectedCraftId
- {
- get{
- return craftData.id;
- }
- }
- public void SelectEquip(EquipIcon icon)
- {
- if (icon != null) {
- ShowEquipInfo (icon.data as Equipment);
- } else {
- ShowEquipInfo (null);
- }
- }
- public void SelectEquiped(EquipIcon icon)
- {
- if (holdEquipment == null) {
- if (icon != null) {
- ShowEquipInfo (icon.data as Equipment);
- } else {
- ShowEquipInfo (null);
- }
- } else {
- Equip (icon.data as Equipment);
- }
- }
- private void ShowEquipInfo(Equipment equipment)
- {
- for(int i=0; i<equipContainer.transform.childCount; i++)
- {
- EquipIcon icon = equipContainer.transform.GetChild (i).GetComponent<EquipIcon> ();
- if (icon.data == equipment) {
- ButtonUtil.TabSelected (icon, equipContainer);
- break;
- }
- }
- bool found = false;
- for(int i=0; i<equipedContainer.transform.childCount; i++)
- {
- EquipIcon icon = equipedContainer.transform.GetChild (i).GetComponent<EquipIcon> ();
- if (icon.data == equipment) {
- ButtonUtil.TabSelected (icon, equipedContainer);
- found = true;
- break;
- }
- }
- if (!found)
- ButtonUtil.TabUnselect (equipedContainer);
- equipInfo.SetEquip (equipment);
- }
- public bool IsEquiped(Equipment equipment)
- {
- return equipedData.IsEquiped (equipment);
- }
- public void Equip(Equipment equip)
- {
- if(equipedData.IsEquiped(equip))
- {
- if(holdEquipment != null)
- {
- bool replaced = equipedData.ReplaceCustomize (equip, holdEquipment);
- if(replaced)
- {
- ClearHoldEquipment ();
- SelectEquipedStyle (equipedData.styleType.GetHashCode ());
- }
- }
- }
- else
- {
- bool replaced = equipedData.ReplaceCustomize (null, equip);
- if (replaced) {
- SelectEquipedStyle (equipedData.styleType.GetHashCode ());
- } else {
- holdEquipment = equip;
- equipTip.gameObject.SetActive (true);
- }
- }
- }
- public void ClearHoldEquipment()
- {
- holdEquipment = null;
- equipTip.gameObject.SetActive (false);
- }
- public void SelectEquipedStyle(int index)
- {
- ButtonUtil.TabSelected (index, equipedStyleContainer);
- equipedData.styleType = EquipedData.GetSytleTypeByCode(index);
- ListHelper.FillList<Equipment> (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<EquipPanel> (Resources.Load<GameObject> ("Prefabs/UI/EquipPanel/EquipPanel"), null, true);
- currentPanel.Open ();
- return currentPanel;
- }
- }
|