using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 游戏主界面底部功能按钮
///
public class MainWin : FunctionsBaseWin
{
//头像区
[SerializeField] AvatarCell avatarCell;
[SerializeField] Text playerNameText;
[SerializeField] Text powerText;
[SerializeField] OfficialTitleCell officialRankText;
[SerializeField] Text goldText;
[SerializeField] Text sparText;
public Text hammerText;
protected override void InitComponent()
{
base.InitComponent();
avatarCell.button.AddListener(() => { });
}
public override void Refresh()
{
UpdateCurrency();
UpdatePlayerInfo();
}
protected override void OnPreOpen()
{
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
base.OnPreOpen();
// 刷新UI
Refresh();
}
protected override void OnPreClose()
{
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
base.OnPreClose();
}
///
/// 更新玩家信息
///
private void UpdatePlayerInfo()
{
// 从玩家数据中获取信息并更新UI
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
PlayerDatas.Instance.baseData.face,
PlayerDatas.Instance.baseData.facePic));
playerNameText.text = PlayerDatas.Instance.baseData.PlayerName;
powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint);
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
}
void PlayerDataRefresh(PlayerDataType type)
{
switch (type)
{
case PlayerDataType.FightPower:
powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint);
break;
case PlayerDataType.RealmLevel:
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
break;
case PlayerDataType.Gold:
goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
break;
case PlayerDataType.default33:
sparText.text = UIHelper.GetMoneyCnt(42).ToString();
break;
case PlayerDataType.Face:
case PlayerDataType.FacePic:
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
PlayerDatas.Instance.baseData.face,
PlayerDatas.Instance.baseData.facePic));
break;
case PlayerDataType.default26:
hammerText.text = UIHelper.GetMoneyCnt(41).ToString();
break;
}
}
///
/// 更新货币信息
///
private void UpdateCurrency()
{
hammerText.text = UIHelper.GetMoneyCnt(41).ToString();
goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
sparText.text = UIHelper.ReplaceLargeNumEx(UIHelper.GetMoneyCnt(42));
}
///
/// 底部标签按钮点击
///
protected override void OnTabButtonClicked(int index)
{
if (index == 0)
{
if (currentSubUI != null && currentSubUI.name == "HomeWin")
{
//打开主界面的情况下再点击按钮,执行攻击逻辑
}
}
SelectBottomTab(index);
}
///
/// 更新按钮状态
///
protected override void UpdateButtonsState()
{
// 遍历所有按钮,设置选中状态
// for (int i = 0; i < tabButtons.Length; i++)
// {
// // bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray;
// }
}
///
/// 根据标签索引打开对应的子界面
///
protected override void OpenSubUIByTabIndex()
{
Debug.Log("打开子界面 : " + functionOrder);
// 主城 内政 武将 挑战 公会
//根据索引打开不同的界面
switch (functionOrder)
{
case 0:
// 打开主页界面
currentSubUI = UIManager.Instance.OpenWindow();
Debug.Log("打开主城界面");
break;
case 1:
// currentSubUI = UIManager.Instance.OpenUI();
Debug.Log("打开内政界面");
break;
case 2:
currentSubUI = UIManager.Instance.OpenWindow(0);
Debug.Log("打开武将界面");
break;
case 3:
// currentSubUI = UIManager.Instance.OpenUI();
Debug.Log("打开挑战界面");
break;
case 4:
//currentSubUI = UIManager.Instance.OpenWindow();
Debug.Log("打开公会界面");
break;
default:
Debug.LogWarning("未知的标签索引: " + functionOrder);
break;
}
}
}