123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- using UI.ClothingShop;
- using UI.CommonGame;
- using FairyGUI;
- using UnityEngine;
- using System.Collections.Generic;
- using System;
- namespace GFGGame
- {
- class GalleryShopTabType
- {
- public const int BG = 0;
- public const int NPC = 1;
- public const int ITEM = 2;
- public const int BORDER = 3;
- public const int EFFECT = 4;
- }
- public class GalleryShopView : BaseView
- {
- private UI_GalleryShopUI _ui;
- private ValueBarController _valueBarController;
- private List<ShopCfg> _dataList;
- private ShopCfg _cfgSelected;
- private const int MAX_COUNT = 99;
- private const int INIT_COUNT = 1;
- private int _scoreType;
- private int _storeId = 1;
- private GButton _selectedListItem;
- private int _selectedItemId;//打开界面时选中的物品id
- private int _selectedType = 0;//打开界面时选中的物品类型
- private int _selectedItemCount;
- private int _selectedId;
- public override void Dispose()
- {
- if (_valueBarController != null)
- {
- _valueBarController.Dispose();
- _valueBarController = null;
- }
- _cfgSelected = null;
- if (_ui != null)
- {
- _ui.Dispose();
- _ui = null;
- }
- base.Dispose();
- }
- protected override void OnInit()
- {
- base.OnInit();
- packageName = UI_GalleryShopUI.PACKAGE_NAME;
- _ui = UI_GalleryShopUI.Create();
- this.viewCom = _ui.target;
- isfullScreen = true;
- isReturnView = true;
- _valueBarController = new ValueBarController(_ui.m_valueBar);
- _ui.m_comItemList.m_list.itemRenderer = ListShopItemRender;
- _ui.m_comItemList.m_list.onClickItem.Add(OnClickListShopItem);
- _ui.m_comItemList.m_comBtnTab.m_c1.onChanged.Add(OnClickListTypeItem);
- _ui.m_btnBack.onClick.Add(OnClickBtnBack);
- _ui.m_btnBuy.onClick.Add(OnclickBtnBuy);
- _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hz_bjbj");
- }
- protected override void AddEventListener()
- {
- base.AddEventListener();
- EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateItemChange);
- EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateSelectedItemInfo);
- EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, UpdateItemChange);
- }
- protected override void OnShown()
- {
- base.OnShown();
- _storeId = ConstStoreId.GALLERY_STORE_ID;
- _scoreType = 0;
- _selectedItemId = 0;
- _selectedType = 0;
- if (this.viewData != null)
- {
- //this.viewData[0]=storeId(商店Id)
- //this.viewData[1]=_scoreType(服装属性:风花雪月)
- //this.viewData[2]=_selectedItemId
- //this.viewData[3]=_selectedItemCount
- object[] objs = this.viewData as object[];
- if (objs.Length > 0 && objs[0] != null)
- {
- _storeId = (int)objs[0];//从抽奖跳转到商店会区分商店Id
- }
- if (objs.Length > 1 && objs[1] != null)
- {
- _scoreType = (int)objs[1];//从战斗跳转到商店需要服装突出属性用来服装排序
- }
- if (objs.Length > 2 && objs[2] != null)
- {
- _selectedItemId = (int)objs[2];//从物品来源面板跳转到商店,需要物品id方便打开界面时做选中处理
- _selectedItemCount = (int)objs[3];
- List<ShopCfg> dataArray = ShopCfgArray.Instance.GetCfgsBymenu1Andmenu2(ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_GALLERY);
- for (int i = 0; i < dataArray.Count; i++)
- {
- if (dataArray[i].itemId == _selectedItemId)
- {
- _selectedType = int.Parse(dataArray[i].typeIndex);
- _selectedId = dataArray[i].id;
- _ui.m_comItemList.m_comBtnTab.m_c1.selectedIndex = _selectedType;
- break;
- }
- }
- }
- }
- _ui.m_comItemList.m_comBtnTab.m_c1.selectedIndex = _selectedType;
- // _ui.m_listType.ScrollToView(_selectedType);
- UpdateList(false);
- _valueBarController.OnShown();
- if (_selectedItemId > 0 && _selectedItemCount > 0)
- {
- ShopViewManager.Instance.BuyItem(_cfgSelected.id, _selectedItemCount, _storeId, _cfgSelected);
- }
- }
- protected override void OnHide()
- {
- base.OnHide();
- _valueBarController.OnHide();
- _selectedItemId = 0;
- }
- protected override void RemoveEventListener()
- {
- base.RemoveEventListener();
- EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateSelectedItemInfo);
- EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateItemChange);
- EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, UpdateItemChange);
- }
- private void OnClickBtnBack()
- {
- ViewManager.GoBackFrom(typeof(GalleryShopView).FullName);
- }
- private void OnclickBtnBuy()
- {
- int count = _selectedItemId > 0 && _cfgSelected.itemId == _selectedItemId ? _selectedItemCount : INIT_COUNT;
- // BuyItemConteoller.Show(_cfgSelected.itemID, _cfgSelected.costID, INIT_COUNT, _cfgSelected.costNum, count, null, true, false, MAX_COUNT);
- count = Math.Max(1, count);
- ShopViewManager.Instance.BuyItem(_cfgSelected.id, count, _storeId, _cfgSelected);
- }
- private void UpdateItemChange()
- {
- UpdateList(false);
- }
- private void UpdateList(bool tween)
- {
- int typeIndex = _ui.m_comItemList.m_comBtnTab.m_c1.selectedIndex;
- _dataList = ShopDataManager.Instance.GetList(_storeId, typeIndex, _scoreType);
- _ui.m_comItemList.m_list.numItems = _dataList.Count;
- if (_ui.m_comItemList.m_list.numItems > 0)
- {
- ShopCfg clothingShopCfg = ShopCfgArray.Instance.GetCfg(_selectedId);
- int itemIndex = 0;
- if (_selectedItemId > 0 && clothingShopCfg != null)
- {
- for (int i = 0; i < _dataList.Count; i++)
- {
- if (_dataList[i].id == _selectedId)
- {
- itemIndex = i;
- break;
- }
- }
- _ui.m_comItemList.m_list.ScrollToView(itemIndex < 0 ? 0 : itemIndex);
- _ui.m_comItemList.m_list.selectedIndex = itemIndex;
- }
- UpdateSelectedItemInfo(_ui.m_comItemList.m_list.GetChildAt(itemIndex) as GComponent, tween);
- }
- }
- private void OnClickListTypeItem(EventContext context)
- {
- UpdateList(true);
- }
- private void ListShopItemRender(int index, GObject item)
- {
- UI_ListGalleryShopItem listItem = UI_ListGalleryShopItem.Proxy(item);
- ShopCfg cfg = _dataList[index];
- listItem.target.data = cfg;
- // listItem.m_grpSelect.visible = false;
- ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.itemId);
- listItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
- string itemName = itemCfg.name;
- listItem.m_txtName.text = itemName;
- // RarityIconController.UpdateRarityIcon(listItem.m_rarity, cfg.itemID, false);
- ItemCfg costItemCfg = ItemCfgArray.Instance.GetCfg(cfg.costId);
- listItem.m_iconPrice.url = "ui://CommonGame/" + costItemCfg.res;
- listItem.m_imgOwned.visible = ItemDataManager.GetItemNum(cfg.itemId) > 0;
- // listItem.m_txtPrice.text = ItemDataManager.GetItemNum(cfg.costID) >= cfg.costNum ? StringUtil.GetColorText(cfg.costNum.ToString(), "#DD994A") : StringUtil.GetColorText(cfg.costNum.ToString(), "#F2989B");
- listItem.m_txtPrice.text = cfg.Price.ToString();
- UI_ListGalleryShopItem.ProxyEnd();
- }
- private void OnClickListShopItem(EventContext context)
- {
- _selectedItemId = 0;
- UpdateSelectedItemInfo(context.data as GComponent, true);
- }
- private void UpdateSelectedItemInfo(GComponent listItem, bool tween)
- {
- if (_selectedListItem != null) _selectedListItem.selected = false;
- _selectedListItem = listItem.asButton;
- _selectedListItem.selected = true;
- ShopCfg cfg = listItem.data as ShopCfg;
- _cfgSelected = cfg;
- UpdateRole(tween);
- UpdateSelectedItemInfo();
- }
- private void UpdateRole(bool tween)
- {
- ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_cfgSelected.itemId);
- string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
- _ui.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); ;
- // _ui.m_comRes.m_loaBg.visible = false;
- // _ui.m_comRes.m_c1.selectedIndex = _ui.m_comItemList.m_comBtnTab.m_c1.selectedIndex;
- // switch (_ui.m_comRes.m_c1.selectedIndex)
- // {
- // case GalleryShopTabType.BG:
- // // _ui.m_comRes.m_loaBg.url = ResPathUtil.GetDressUpPath(itemCfg.res, ext);
- // _ui.m_comRes.m_loaBg.url = ResPathUtil.GetIconPath(itemCfg); ;
- // // _ui.m_loaBgRes.visible = true;
- // _ui.m_comRes.m_loaBg.visible = true;
- // break;
- // case GalleryShopTabType.NPC:
- // // _ui.m_comRes.m_loaNpc.url = ResPathUtil.GetNpcPicFPath(itemCfg.res);
- // _ui.m_comRes.m_loaNpc.url = ResPathUtil.GetIconPath(itemCfg); ;
- // break;
- // case GalleryShopTabType.ITEM:
- // ItemTypeCfg typeCfg = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType);
- // int sortingOrder = typeCfg.defaultLayer;
- // string res = itemCfg.res;
- // // _ui.m_comRes.m_comItem.m_loaItem0.visible = false;
- // // _ui.m_comRes.m_comItem.m_loaItem1.visible = false;
- // // _ui.m_comRes.m_comItem.m_loaItem2.visible = false;
- // // _ui.m_comRes.m_comItem.m_loaItem0.url = ResPathUtil.GetIconPath(itemCfg); ;
- // // if (!string.IsNullOrEmpty(itemCfg.resLayer1))
- // // {
- // // res = itemCfg.resLayer1 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer1);
- // // string resPath = ResPathUtil.GetDressUpPath(res, ext);
- // // // Texture2D texture2D = GFGAsset.Load<Texture2D>(resPath);
- // // // _ui.m_comRes.m_loaItem0.texture = new NTexture(texture2D); ;
- // // _ui.m_comRes.m_comItem.m_loaItem0.url = resPath;
- // // float tx, ty;
- // // DressUpUtil.LoadSpritePos(resPath, out tx, out ty);
- // // _ui.m_comRes.m_comItem.m_loaItem0.SetXY(tx, ty);
- // // _ui.m_comRes.m_comItem.m_loaItem0.visible = true;
- // // _ui.m_comRes.m_comItem.m_loaItem0.sortingOrder = sortingOrder;
- // // }
- // // if (!string.IsNullOrEmpty(itemCfg.resLayer2))
- // // {
- // // sortingOrder = typeCfg.specialLayer;
- // // res = itemCfg.resLayer2 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer2);
- // // string resPath = ResPathUtil.GetDressUpPath(res, ext);
- // // // Texture2D texture2D = GFGAsset.Load<Texture2D>(resPath);
- // // // _ui.m_comRes.m_loaItem1.texture = new NTexture(texture2D); ;
- // // _ui.m_comRes.m_comItem.m_loaItem1.url = resPath;
- // // float tx, ty;
- // // DressUpUtil.LoadSpritePos(resPath, out tx, out ty);
- // // _ui.m_comRes.m_comItem.m_loaItem1.SetXY(tx, ty);
- // // _ui.m_comRes.m_comItem.m_loaItem1.visible = true;
- // // _ui.m_comRes.m_comItem.m_loaItem1.sortingOrder = sortingOrder;
- // // }
- // // if (!string.IsNullOrEmpty(itemCfg.resLayer3))
- // // {
- // // sortingOrder = typeCfg.thirdlLayer;
- // // res = itemCfg.resLayer3 == "n" ? res : string.Format("{0}_{1}", res, itemCfg.resLayer3);
- // // string resPath = ResPathUtil.GetDressUpPath(res, ext);
- // // // Texture2D texture2D = GFGAsset.Load<Texture2D>(res);
- // // // _ui.m_comRes.m_loaItem2.texture = new NTexture(texture2D);
- // // _ui.m_comRes.m_comItem.m_loaItem2.url = resPath;
- // // float tx, ty;
- // // DressUpUtil.LoadSpritePos(resPath, out tx, out ty);
- // // _ui.m_comRes.m_comItem.m_loaItem2.SetXY(tx, ty);
- // // _ui.m_comRes.m_comItem.m_loaItem2.visible = true;
- // // _ui.m_comRes.m_comItem.m_loaItem2.sortingOrder = sortingOrder;
- // // }
- // // _ui.m_comRes.m_comItem.target.SetSize(_ui.m_comRes.m_comItem.m_grpItem.width, _ui.m_comRes.m_comItem.m_grpItem.height);
- // break;
- // case GalleryShopTabType.BORDER:
- // // _ui.m_comRes.m_loaBorder.url = ResPathUtil.GetPhotographBorderPath(itemCfg.res);
- // _ui.m_comRes.m_loaBorder.url = ResPathUtil.GetIconPath(itemCfg); ;
- // break;
- // case GalleryShopTabType.EFFECT:
- // break;
- // }
- }
- private void UpdateSelectedItemInfo()
- {
- ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_cfgSelected.itemId);
- _ui.m_txtName.text = itemCfg.name;
- _ui.m_txtDesc.text = itemCfg.desc;
- }
- }
- }
|