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(); _tables = GContext.container.Resolve(); bg_hud_god_image = transform.Find("bg").GetComponent(); rawImage = transform.Find("mask/icon").GetComponent(); text_grade_rod = transform.Find("text_grade").GetComponent(); text_star_rod = transform.Find("bg_star/text_star").GetComponent(); disposable = GContext.OnEvent().Subscribe(e => { InitData(); }); } private void Start() { InitData(); } public void InitData() { RodData rod = _tables.GetRodData(GContext.container.Resolve().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().SetImageSprite(bg_hud_god_image, bg_hud_gods[rod.Quality - 1], "HomePanel"); int skindID = GContext.container.Resolve().GetRodSkin(rod.ID); if (skindID <= 0) { return; } var fishRodSkinData = _tables.TbRodSkinData.GetOrDefault(skindID); if (fishRodSkinData == null) { return; } GContext.container.Resolve().SetImageSprite(rawImage, fishRodSkinData.Avatar, "HomePanel"); } private void OnDestroy() { disposable?.Dispose(); disposable = null; } }