178 lines
5.7 KiB
C#
178 lines
5.7 KiB
C#
using GCGame.Table;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ChildFashionPanel : MonoBehaviour, ChildRefreshInterface{
|
|
|
|
public static ChildFashionPanel Instance;
|
|
void OnEnable()
|
|
{
|
|
Instance = this;
|
|
RefreshChildData();
|
|
}
|
|
|
|
void OnDisable()
|
|
{
|
|
Instance = null;
|
|
}
|
|
|
|
public ChildSwitchBtnPanel _SwitchPanel;
|
|
public UIContainerBase _ItemContainer;
|
|
public ChildModelAndEffectCtr _ModelEffectCtr;
|
|
public FashionAttrBase _FashionAttrPanel;
|
|
public Text _ChildName;
|
|
|
|
public void RefreshChildData(RetChildren childData = null)
|
|
{
|
|
ShowChildByIndex(0);
|
|
InitSwitchPanel();
|
|
}
|
|
|
|
void InitSwitchPanel()
|
|
{
|
|
_SwitchPanel.InitSwitchPanel(ChildData.ChildPacket == null ? 0 : ChildData.ChildPacket.list.Count);
|
|
}
|
|
|
|
private int _CurSelectChildIndex = 0;
|
|
public void ShowChildByIndex(int index)
|
|
{
|
|
if(ChildData.GetChildByIndex(_CurSelectChildIndex) == null)
|
|
{
|
|
Debug.LogError("Child is null");
|
|
if (ChildPanel.Instance)
|
|
ChildPanel.Instance._MenuItemContainerBase.ShowNoDataPanel(true);
|
|
return;
|
|
}
|
|
ChildPanel.PlayeChildSoundByIndex(_CurSelectChildIndex);
|
|
_CurSelectChildIndex = index;
|
|
_ChildName.text = ChildData.GetChildByIndex(_CurSelectChildIndex).basic.name;
|
|
SetCurSelectChild();
|
|
initShowMark();
|
|
InitItemContainer();
|
|
InitChildModel();
|
|
}
|
|
|
|
//选中当前子女
|
|
void SetCurSelectChild()
|
|
{
|
|
SelectCurChildren req = new SelectCurChildren();
|
|
req.childrenGuid = ChildData.GetChildByIndex(_CurSelectChildIndex).guid;
|
|
req.SendMsg();
|
|
}
|
|
|
|
public void InitItemContainer()
|
|
{
|
|
//先隐藏属性面板,在点击时装的时候再次打开
|
|
_FashionAttrPanel.gameObject.SetActive(false);
|
|
|
|
var childFashionTab = TableManager.GetChildrenFashion();
|
|
List<int> tabList = new List<int>();
|
|
foreach(var item in childFashionTab)
|
|
{
|
|
if (!tabList.Contains(item.Key))
|
|
tabList.Add(item.Key);
|
|
}
|
|
_ItemContainer.InitContentItem(tabList);
|
|
|
|
//刷新当前拥有时装的状态
|
|
_ItemContainer.SetShowItemFinishCallFun(RefreshItemContainerItemState);
|
|
}
|
|
|
|
//显示当前穿戴的模型
|
|
void InitChildModel()
|
|
{
|
|
_ModelEffectCtr.ShowChildFashion(_CurSelectChildIndex, _CurSelectFashionItemId);
|
|
}
|
|
|
|
private int _CurSelectFashionItemId = -1;
|
|
public void OnChildFashionItem(int fashionItemId)
|
|
{
|
|
if (_CurSelectFashionItemId == fashionItemId)
|
|
return;
|
|
|
|
if (ChildData.GetChildByIndex(_CurSelectChildIndex).basic.embryoEndtime > GlobalData.ServerAnsiTime)
|
|
return;
|
|
|
|
_CurSelectFashionItemId = fashionItemId;
|
|
|
|
_ModelEffectCtr.ShowChildFashion(_CurSelectChildIndex, _CurSelectFashionItemId);
|
|
|
|
//初始化属性面板
|
|
InitAttrPanel();
|
|
//设置选中状态
|
|
initShowMark();
|
|
//初始化时装
|
|
InitChildModel();
|
|
}
|
|
|
|
public void RefreshFashionPanel()
|
|
{
|
|
ShowChildByIndex(_CurSelectChildIndex);
|
|
RefreshItemContainerItemState();
|
|
}
|
|
|
|
//刷新按钮状态
|
|
public void RefreshItemContainerItemState()
|
|
{
|
|
var childData = ChildData.GetChildByIndex(_CurSelectChildIndex);
|
|
_ItemContainer.ForeachActiveItem<ChildFashionItemBase>((item) =>
|
|
{
|
|
|
|
if (ChildData.GetChildFashionStateByIndex(_CurSelectChildIndex) == null
|
|
|| ChildData.GetChildFashionStateByIndex(_CurSelectChildIndex).COFList == null)
|
|
{
|
|
//1.背包有对应道具 可以激活
|
|
var _ChildFashionTab = TableManager.GetChildrenFashionByID(item._CurChildFashionTabId, 0);
|
|
var backPack = GameManager.gameManager.PlayerDataPool.BackPack;
|
|
var itemcount = backPack.GetItemCountByDataId(_ChildFashionTab.ItemId);
|
|
//未获得
|
|
item.InitBtnState(itemcount <= 0 ? 0 : 4);
|
|
}
|
|
else
|
|
{
|
|
if (item._CurChildFashionTabId == ChildData.GetChildCurDressedFashionIdByIndex(_CurSelectChildIndex))
|
|
{
|
|
item.InitBtnState(2); //已穿戴
|
|
item.OnItemClick();
|
|
}
|
|
else if (ChildData.GetChildFashionStateByIndex(_CurSelectChildIndex).COFList.Contains(item._CurChildFashionTabId))
|
|
{
|
|
item.InitBtnState(1); //拥有 未穿戴
|
|
}
|
|
else
|
|
{
|
|
//1.背包有对应道具 可以激活
|
|
var _ChildFashionTab = TableManager.GetChildrenFashionByID(item._CurChildFashionTabId, 0);
|
|
var backPack = GameManager.gameManager.PlayerDataPool.BackPack;
|
|
var itemcount = backPack.GetItemCountByDataId(_ChildFashionTab.ItemId);
|
|
//未获得
|
|
item.InitBtnState(itemcount <= 0 ? 0 : 4);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
void initShowMark()
|
|
{
|
|
//当前未选中时装就隐藏全部Mark
|
|
_ItemContainer.ForeachActiveItem<ChildFashionItemBase>((item) =>
|
|
{
|
|
item.ShowMark(_CurSelectFashionItemId == -1 ? false : _CurSelectFashionItemId == item._CurChildFashionTabId);
|
|
});
|
|
}
|
|
|
|
void InitAttrPanel()
|
|
{
|
|
if(_CurSelectFashionItemId == -1)
|
|
{
|
|
_FashionAttrPanel.gameObject.SetActive(false);
|
|
return;
|
|
}
|
|
_FashionAttrPanel.gameObject.SetActive(true);
|
|
_FashionAttrPanel.InitAttrPanel(_CurSelectFashionItemId);
|
|
}
|
|
}
|