using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 游戏主界面底部功能按钮
///
public class MainWin : FunctionsBaseWin
{
//头像区
[SerializeField] GameObject topBar;
[SerializeField] AvatarCell avatarCell;
[SerializeField] Text playerNameText;
[SerializeField] Text powerText;
[SerializeField] OfficialTitleCell officialRankText;
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();
}
protected override void SelectBottomTab(int index)
{
if (index == 3)
{
//挑战特殊显示逻辑
return;
}
topBar.SetActive(index == 0 || index == 2);
// 如果点击当前已选中的标签,不做处理
if (functionOrder == index && currentSubUI != null)
{
return;
}
// 更新当前选中的标签索引
functionOrder = index;
// 关闭当前打开的子界面
CloseCurrentSubUI();
// 根据选中的标签打开对应的界面
OpenSubUIByTabIndex();
}
///
/// 更新玩家信息
///
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.FightPower);
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.FightPower);
break;
case PlayerDataType.RealmLevel:
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
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();
}
///
/// 底部标签按钮点击
///
protected override void OnTabButtonClicked(int index)
{
if (index == 0)
{
if (currentSubUI != null && currentSubUI.name == "HomeWin")
{
Debug.Log("点击主界面按钮");
//打开主界面的情况下再点击按钮,执行攻击逻辑
if (AutoFightModel.Instance.isAutoAttackSet)
{
AutoFightModel.Instance.isAutoAttack = true;
}
StoryBattleField storyBattleField = BattleManager.Instance.storyBattleField;
if (storyBattleField != null)
{
storyBattleField.operationAgent.DoNext();
}
}
}
SelectBottomTab(index);
}
///
/// 根据标签索引打开对应的子界面
///
protected override void OpenSubUIByTabIndex()
{
Debug.Log("打开子界面 : " + functionOrder);
// 主城 内政 武将 挑战 公会
//根据索引打开不同的界面
switch (functionOrder)
{
case 0:
// 打开主页界面
if (!UIManager.Instance.IsOpened())
{
BattleWin battleWin = UIManager.Instance.OpenWindow();
battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
}
else
{
BattleWin battleWin = UIManager.Instance.GetUI();
battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
}
currentSubUI = UIManager.Instance.OpenWindow();
Debug.Log("打开主城界面");
break;
case 1:
currentSubUI = UIManager.Instance.OpenWindow();
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();
break;
default:
Debug.LogWarning("未知的标签索引: " + functionOrder);
break;
}
}
}