Files
back_cantanBuilding/Assets/Scripts/Duel/UI/DuelBtnRod.cs
2026-05-26 16:15:54 +08:00

61 lines
2.1 KiB
C#

using asap.core;
using cfg;
using GameCore;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UniRx;
public class DuelBtnRod : MonoBehaviour
{
Image bg_hud_god_image;
Image rawImage;
TMP_Text text_grade_rod;
TMP_Text text_star_rod;
PlayerFishData _playerFishData;
Tables _tables;
string[] bg_hud_gods = { "bg_hud_god_blue", "bg_hud_god_blue", "bg_hud_god_purple", "bg_hud_god_yellow" };
System.IDisposable disposable;
private void Awake()
{
_playerFishData = GContext.container.Resolve<PlayerFishData>();
_tables = GContext.container.Resolve<Tables>();
bg_hud_god_image = transform.Find("bg").GetComponent<Image>();
rawImage = transform.Find("mask/icon").GetComponent<Image>();
text_grade_rod = transform.Find("text_grade").GetComponent<TMP_Text>();
text_star_rod = transform.Find("bg_star/text_star").GetComponent<TMP_Text>();
disposable = GContext.OnEvent<ActChangeRodDataEvent>().Subscribe(e =>
{
InitData();
});
}
private void Start()
{
InitData();
}
public void InitData()
{
RodData rod = _tables.GetRodData(GContext.container.Resolve<PlayerData>().equipRodID);
text_grade_rod.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePanel_2", _playerFishData.GetRodLevel(rod.ID) + 1);
text_star_rod.text = _playerFishData.GetRodPiece(rod.ID).ToString();
GContext.container.Resolve<IUIService>().SetImageSprite(bg_hud_god_image, bg_hud_gods[rod.Quality - 1], "HomePanel");
int skindID = GContext.container.Resolve<PlayerFishData>().GetRodSkin(rod.ID);
if (skindID <= 0)
{
return;
}
var fishRodSkinData = _tables.TbRodSkinData.GetOrDefault(skindID);
if (fishRodSkinData == null)
{
return;
}
GContext.container.Resolve<IUIService>().SetImageSprite(rawImage, fishRodSkinData.Avatar, "HomePanel");
}
private void OnDestroy()
{
disposable?.Dispose();
disposable = null;
}
}