Files
JJBB/Assets/Project/Script/GUI/Market/MarketPlayerBuy.cs

261 lines
8.3 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Item;
using System.Collections.Generic;
public class MarketPlayerBuy : UIControllerBase<MarketPlayerBuy>
{
void Awake()
{
InitMenu();
}
// Use this for initialization
void OnEnable ()
{
SetInstance(this);
_BuyPage.SetActive(true);
UpdatePage();
GUIData.delMoneyChanged += UpdateMoney;
if (_SelectedPage != null)
{
OnMenu(_SelectedPage);
}
}
void OnDisable()
{
GUIData.delMoneyChanged -= UpdateMoney;
SetInstance(null);
}
// Update is called once per frame
void Update ()
{
}
#region showPage
public GameObject _BuyPage;
public UIItemSelect _BtnFind;
public UISubScollMenu _BuyItemMenu;
public MarketFindPage _FindPage;
public MarketEquipFilterPage _EquipFilterPaeg;
public MarketItemClassPage _ItemClassPage;
public MarketItemListPage _ItemListPage;
public UICurrencyItem _OwnMoney;
public GameObject _NoneWatchPanel;
private bool _IsShowWatchPanel;
public Market.MarketItemClass _SelectedPage;
private void InitMenu()
{
_BuyItemMenu.PushMenu(new Market.MarketItemClass(999, 1));
_BuyItemMenu.PushMenu(Market.GetMarketClassName(1, -1), new Market.MarketItemClass[2] { /*new Market.MarketItemClass(1, 1), */new Market.MarketItemClass(1, 2) , new Market.MarketItemClass(1, 3) });
//_BuyItemMenu.PushMenu(Market.GetMarketClassName(2, -1), new Market.MarketItemClass[3] { new Market.MarketItemClass(2, 1), new Market.MarketItemClass(2, 2), new Market.MarketItemClass(2, 3) });
//_BuyItemMenu.PushMenu(Market.GetMarketClassName(3, -1), new Market.MarketItemClass[3] { new Market.MarketItemClass(3, 1), new Market.MarketItemClass(3, 2), new Market.MarketItemClass(3, 4) });
_BuyItemMenu.PushMenu(Market.GetMarketClassName(6, -1), new Market.MarketItemClass[1] { new Market.MarketItemClass(6, 2) });
_BuyItemMenu.PushMenu(Market.GetMarketClassName(7, -1), new Market.MarketItemClass[2] { new Market.MarketItemClass(7, 1), new Market.MarketItemClass(7, 2) });
//_BuyItemMenu.PushMenu(Market.GetMarketClassName(8, -1), new Market.MarketItemClass[4] { new Market.MarketItemClass(8, 1), new Market.MarketItemClass(8, 2), new Market.MarketItemClass(8, 3), new Market.MarketItemClass(8, 4)});
_BuyItemMenu.PushMenu(Market.GetMarketClassName(9, -1), new Market.MarketItemClass[3] { new Market.MarketItemClass(9, 1), new Market.MarketItemClass(9, 2), new Market.MarketItemClass(9, 3) });
}
public void ShowFocusPage()
{
_BuyItemMenu.ShowDefaultFirst();
}
public void UpdateShopInfo()
{
if (!_IsShowWatchPanel)
{
if (_ItemListPage.gameObject.activeSelf)
{
_ItemListPage.RefreshItems();
_ItemListPage.UpdateWatchBtn();
}
}
else
{
if (Market.WatchItems.Count > 0)
{
_ItemListPage.gameObject.SetActive(true);
_ItemListPage.UpdateWatchItems();
_NoneWatchPanel.SetActive(false);
}
else
{
_ItemListPage.gameObject.SetActive(false);
_ItemListPage.UpdateWatchItems();
_NoneWatchPanel.SetActive(true);
}
}
}
public void UpdatePage()
{
_OwnMoney.ShowOwnCurrency(MONEYTYPE.MONEYTYPE_COIN);
StartCoroutine(UpdateMenu());
}
private IEnumerator UpdateMenu()
{
yield return new WaitForEndOfFrame();
if(_SelectedPage==null)
_BuyItemMenu.ShowDefaultFirst();
}
public void UpdateMoney()
{
_OwnMoney.ShowOwnCurrency(MONEYTYPE.MONEYTYPE_COIN);
}
public void OnMenuSelect(Market.MarketItemClass selectedPage)
{
if (selectedPage == null)
return;
foreach (var menuObj in _BuyItemMenu.SubBtns)
{
if (menuObj.Value.Count > 0)
{
foreach (var menuSubObj in menuObj.Value)
{
Market.MarketItemClass marketClass = menuSubObj.MenuObj as Market.MarketItemClass;
if (marketClass.ItemClass == selectedPage.ItemClass && marketClass.ItemSubClass == selectedPage.ItemSubClass)
{
_BuyItemMenu.ShowMenu(menuObj.Key.MenuObj, menuSubObj.MenuObj);
_SelectedPage = marketClass;
}
}
}
else
{
Market.MarketItemClass marketClass = menuObj.Key.MenuObj as Market.MarketItemClass;
if (marketClass.ItemClass == selectedPage.ItemClass && marketClass.ItemSubClass == selectedPage.ItemSubClass)
{
_BuyItemMenu.ShowMenu(menuObj.Key.MenuObj);
_SelectedPage = marketClass;
}
}
}
}
public void OnMenu(object menuObj)
{
_BtnFind.UnSelected();
var selectedPage = menuObj as Market.MarketItemClass;
if (selectedPage == null)
return;
_SelectedPage = selectedPage;
_IsShowWatchPanel = false;
_NoneWatchPanel.SetActive(false);
if (_SelectedPage.ItemClass == 999)//关注
{
_IsShowWatchPanel = true;
OnShowWatch();
}
else if (_SelectedPage.ItemClass == 1)
{
if (_SelectedPage.ItemSubClass == 1)
{
ShowEquipFilter(0);
}
else if (_SelectedPage.ItemSubClass == 2)
{
ShowEquipFilter(2);
}
else if (_SelectedPage.ItemSubClass == 3)
{
ShowEquipFilter(1);
}
}
else
{
ShowItemClass();
}
}
public void OnShowWatch()
{
_FindPage.gameObject.SetActive(false);
_EquipFilterPaeg.gameObject.SetActive(false);
_ItemClassPage.gameObject.SetActive(false);
_ItemListPage.gameObject.SetActive(false);
_NoneWatchPanel.SetActive(true);
CG_REQ_USER_SHOP_FOCUS_ITEMS packet = (CG_REQ_USER_SHOP_FOCUS_ITEMS)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_USER_SHOP_FOCUS_ITEMS);
packet.SetState((int)CG_REQ_USER_SHOP_FOCUS_ITEMS.EUserShopFocusState.EFocusItemOnSale);
packet.SendPacket();
}
public void OnBtnFind()
{
_BtnFind.Selected();
_BuyItemMenu.ClearSelect(1);
_IsShowWatchPanel = false;
_NoneWatchPanel.SetActive(false);
_FindPage.gameObject.SetActive(true);
_EquipFilterPaeg.gameObject.SetActive(false);
_ItemClassPage.gameObject.SetActive(false);
_ItemListPage.gameObject.SetActive(false);
}
private void ShowEquipFilter(int filterType)
{
_FindPage.gameObject.SetActive(false);
_EquipFilterPaeg.gameObject.SetActive(true);
_ItemClassPage.gameObject.SetActive(false);
_ItemListPage.gameObject.SetActive(false);
_NoneWatchPanel.SetActive(false);
_EquipFilterPaeg.SetEquipFilter(filterType);
}
private void ShowItemClass()
{
_FindPage.gameObject.SetActive(false);
_EquipFilterPaeg.gameObject.SetActive(false);
_ItemClassPage.gameObject.SetActive(true);
_ItemListPage.gameObject.SetActive(false);
_NoneWatchPanel.SetActive(false);
_ItemClassPage.ShowItemClass(_SelectedPage.ItemClass, _SelectedPage.ItemSubClass, false);
}
public void ShowItemList(List<int> itemDataID, int itemCnt, int isRare = 2)
{
_FindPage.gameObject.SetActive(false);
_EquipFilterPaeg.gameObject.SetActive(false);
_ItemClassPage.gameObject.SetActive(false);
_ItemListPage.gameObject.SetActive(true);
_NoneWatchPanel.SetActive(false);
_ItemListPage.ShowItemType(itemDataID, itemCnt, isRare);
}
private void ShowLikeItemList()
{
_FindPage.gameObject.SetActive(false);
_EquipFilterPaeg.gameObject.SetActive(false);
_ItemClassPage.gameObject.SetActive(false);
_ItemListPage.gameObject.SetActive(true);
_NoneWatchPanel.SetActive(false);
}
#endregion
}