using System.Collections.Generic; using UFS2.Tokens; using UnityEngine; using UnityEngine.UI; public class TokensPanel : MonoBehaviour { [SerializeField] private Transform[] tokensTranform; [SerializeField] private GameObject tokenPrefab; [SerializeField] private GameObject[] xpBoostImages; [SerializeField] private GameObject[] cashBoostSprite; public void Start() { GameManager.Instance.boostTokensModule = base.gameObject.GetComponent(); } public void OnEnable() { InitializeFields(); InitializeBoostImages(); } public void OnDisable() { GameManager.TruncateContainer(tokensTranform[0]); GameManager.TruncateContainer(tokensTranform[1]); } public void Update() { if (Singleton.Instance.GetCurrentPlayerData().TimeBoostCash > 0f) { cashBoostSprite[1].GetComponentInChildren().text = GameManager.Instance._playerData.GetCashBoostTime(); } if (Singleton.Instance.GetCurrentPlayerData().TimeBoostExp > 0f) { xpBoostImages[1].GetComponentInChildren().text = GameManager.Instance._playerData.GetExpBoostTime(); } } public void InitializeFields() { List boostTokens = BoostTokens.GetBoostTokens(BoostToken.tokenType.TokenXP); List boostTokens2 = BoostTokens.GetBoostTokens(BoostToken.tokenType.TokenCash); for (int i = 0; i < boostTokens.Count; i++) { Object.Instantiate(tokenPrefab, tokensTranform[0]).GetComponent().Initialize(boostTokens[i]); } for (int j = 0; j < boostTokens2.Count; j++) { Object.Instantiate(tokenPrefab, tokensTranform[1]).GetComponent().Initialize(boostTokens2[j]); } } public void InitializeBoostImages() { if (Singleton.Instance.GetCurrentPlayerData().TimeBoostExp > 0f) { xpBoostImages[0].SetActive(value: false); xpBoostImages[1].SetActive(value: true); xpBoostImages[1].GetComponentInChildren().text = GameManager.Instance._playerData.GetExpBoostTime(); } else { xpBoostImages[0].SetActive(value: true); xpBoostImages[1].SetActive(value: false); xpBoostImages[0].GetComponentInChildren().text = LanguageManager.Instance.GetText("BOOST_INACTIVE"); } if (Singleton.Instance.GetCurrentPlayerData().TimeBoostCash > 0f) { cashBoostSprite[0].SetActive(value: false); cashBoostSprite[1].SetActive(value: true); cashBoostSprite[1].GetComponentInChildren().text = GameManager.Instance._playerData.GetCashBoostTime(); } else { cashBoostSprite[0].SetActive(value: true); cashBoostSprite[1].SetActive(value: false); cashBoostSprite[0].GetComponentInChildren().text = LanguageManager.Instance.GetText("BOOST_INACTIVE"); } } public void HideTokenPanel() { base.gameObject.SetActive(value: false); } }