using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; using TMPro; using Meta; public class EndRunDialog : BaseDialog { [SerializeField] GameObject _roomIcon; [SerializeField] TextMeshProUGUI m_tapText; [SerializeField] TextMeshProUGUI m_headerText; [SerializeField] TextMeshProUGUI m_rewardText; [SerializeField] TextMeshProUGUI m_progressText; [SerializeField] List m_placements = new List(); bool m_needToMapByClick = true; bool m_allComplete = false; //----------------------------------------------------------------------------------------- void Start () { SoundsManager.Instance.PlaySound("level_up"); m_type = DialogType.END_RUN_DIALOG; } //----------------------------------------------------------------------------------------- public void Init(bool allComplete = false) { m_allComplete = allComplete; InitTexts(); InitRewards(); InitLocIcon(); } //----------------------------------------------------------------------------------------- private void InitLocIcon() { int stageId = CommonFunctions.GetStageId(); GameObject roomIcon = Instantiate(Resources.Load("Prefabs/UI/Locations/loc_" + stageId.ToString()) as GameObject); roomIcon.transform.SetParent(transform); roomIcon.transform.position = _roomIcon.transform.position; roomIcon.transform.localScale = Vector3.one; } //----------------------------------------------------------------------------------------- void InitRewards() { GameObject coinsObj = Instantiate(Resources.Load("Prefabs/reward") as GameObject); coinsObj.transform.SetParent(transform); coinsObj.transform.localScale = Vector3.one; coinsObj.transform.Find("count").GetComponent().text = PlayerResources.Instance.CurrentCoins.ToString(); GlobalsVar.gUser.IncCurrency(Shop.ShopType.Coins, PlayerResources.Instance.CurrentCoins); AddToPlacement(coinsObj, 0); List items = PlayerResources.Instance.Items; for (int i = 0; i < items.Count; ++i) { GameObject itemObj = Instantiate(Resources.Load("Prefabs/reward") as GameObject); itemObj.transform.SetParent(transform); itemObj.transform.localScale = Vector3.one; itemObj.transform.Find("count").GetComponent().text = "1"; itemObj.transform.Find("icon").GetComponent().sprite = Resources.Load(string.Format("Equipment/{0}", items[i].Icon)); Sprite back = Resources.Load(string.Format("Equipment/OBJ_arsenal_{0}", items[i].Rarity)); AddToPlacement(itemObj, i + 1, back); } } //----------------------------------------------------------------------------------------- void AddToPlacement(GameObject obj, int idx, Sprite back = null) { if (idx > m_placements.Count - 1) return; obj.transform.position = m_placements[idx].transform.position; if (back) m_placements[idx].GetComponent().sprite = back; } //----------------------------------------------------------------------------------------- void InitTexts() { if (m_headerText) m_headerText.text = GlobalsVar.gGameTextMng.GetGameText(23).ToUpper(); if (m_rewardText) m_rewardText.text = GlobalsVar.gGameTextMng.GetGameText(24).ToUpper(); if (m_tapText) m_tapText.text = GlobalsVar.gGameTextMng.GetGameText(9); if (m_progressText) { int stageId = CommonFunctions.GetStageId(); int maxRooms = GlobalsVar.gRoomByStage[stageId - 1]; int completedRooms = GlobalsVar.gCurrentRoomInRun - 1; if (m_allComplete) completedRooms = maxRooms; string progressStr = string.Format(GlobalsVar.gGameTextMng.GetGameText(25), completedRooms, maxRooms); m_progressText.text = progressStr; } } //----------------------------------------------------------------------------------------- public override void Update () { base.Update(); if (Input.GetMouseButtonDown(0)) { if (m_needToMapByClick) { GlobalsVar.gSkipClickTime = 0.2f; m_needToMapByClick = false; Time.timeScale = 1f; SceneManager.LoadScene("Scenes/MainMenu"); } } } }