| using System.Collections; | 
| using System.Collections.Generic; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| /// <summary> | 
| /// 游戏主界面底部功能按钮 | 
| /// </summary> | 
| 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(); | 
|     } | 
|   | 
|   | 
|     /// <summary> | 
|     /// 更新玩家信息 | 
|     /// </summary> | 
|     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; | 
|                  | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
|     /// <summary> | 
|     /// 更新货币信息 | 
|     /// </summary> | 
|     private void UpdateCurrency() | 
|     { | 
|         hammerText.text = UIHelper.GetMoneyCnt(41).ToString(); | 
|         goldText.text = UIHelper.GetMoneyCntEx(1).ToString(); | 
|         sparText.text = UIHelper.ReplaceLargeNumEx(UIHelper.GetMoneyCnt(42)); | 
|     } | 
|      | 
|     /// <summary> | 
|     /// 底部标签按钮点击 | 
|     /// </summary> | 
|     protected override void OnTabButtonClicked(int index) | 
|     { | 
|         if (index == 0) | 
|         { | 
|             if (currentSubUI != null && currentSubUI.name == "HomeWin") | 
|             { | 
|                 //打开主界面的情况下再点击按钮,执行攻击逻辑 | 
|                 StoryBattleField storyBattleField = BattleManager.Instance.storyBattleField; | 
|                 if (storyBattleField != null) | 
|                 { | 
|                     storyBattleField.operationAgent.DoNext(); | 
|                 } | 
|             } | 
|         } | 
|         SelectBottomTab(index); | 
|     } | 
|      | 
|   | 
|     /// <summary> | 
|     /// 根据标签索引打开对应的子界面 | 
|     /// </summary> | 
|     protected override void OpenSubUIByTabIndex() | 
|     { | 
|   | 
|         Debug.Log("打开子界面 : " + functionOrder); | 
|         // 主城 内政 武将 挑战 公会 | 
|         //根据索引打开不同的界面 | 
|         switch (functionOrder) | 
|         { | 
|             case 0: | 
|                 // 打开主页界面 | 
|                 if (!UIManager.Instance.IsOpened<BattleWin>()) | 
|                 { | 
|                     BattleWin battleWin = UIManager.Instance.OpenWindow<BattleWin>(); | 
|                     battleWin.SetBattleField(BattleManager.Instance.storyBattleField); | 
|                 } | 
|                 else | 
|                 { | 
|                     BattleWin battleWin = UIManager.Instance.GetUI<BattleWin>(); | 
|                     battleWin.SetBattleField(BattleManager.Instance.storyBattleField); | 
|                 } | 
|                 currentSubUI = UIManager.Instance.OpenWindow<HomeWin>(); | 
|                 Debug.Log("打开主城界面"); | 
|                 break; | 
|             case 1: | 
|                 currentSubUI = UIManager.Instance.OpenWindow<RolePackWin>(); | 
|                 Debug.Log("打开内政界面"); | 
|                 break; | 
|             case 2: | 
|                 currentSubUI = UIManager.Instance.OpenWindow<HeroBaseWin>(0); | 
|                 Debug.Log("打开武将界面"); | 
|                 break; | 
|             case 3: | 
|                 // currentSubUI = UIManager.Instance.OpenUI<QuestUI>(); | 
|                 Debug.Log("打开挑战界面"); | 
|                 break; | 
|             case 4: | 
|                 //currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>(); | 
|                 Debug.Log("打开公会界面"); | 
|                 break; | 
|             default: | 
|                 Debug.LogWarning("未知的标签索引: " + functionOrder); | 
|                 break; | 
|         } | 
|     } | 
| } |