using UnityEngine; using UnityEngine.UI; public class QuestFisheryProgress : MonoBehaviour { private enum Tab { Daily = 0, Weekly = 1, Monthly = 2 } private Animator anim; public Transform QuestProgressContainer; public Transform QuestProgress; public GameObject QuestProgressPrefab; public Sprite[] CategorySprites; public Image[] CategoryImages; public GameObject completeQuest; [HideInInspector] public bool isShow; private Tab tab; private void Start() { tab = Tab.Daily; anim = GetComponent(); ShowQuest(); } public void ShowQuest() { if (Singleton.Instance.GetCurrentPlayerData().PlayerQuest.Count == 0 && Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest.Count == 0 && Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest.Count == 0) { base.gameObject.SetActive(value: false); } GameManager.TruncateContainer(QuestProgressContainer); for (int i = 0; i < CategoryImages.Length; i++) { CategoryImages[i].sprite = CategorySprites[0]; CategoryImages[i].rectTransform.sizeDelta = new Vector2(47.5f, 53.5f); } Debug.Log("Category: " + tab); switch (tab) { case Tab.Daily: { GameManager.TruncateContainer(QuestProgressContainer); CategoryImages[0].sprite = CategorySprites[1]; CategoryImages[0].rectTransform.sizeDelta = new Vector2(58f, 65.5f); for (int k = 0; k < Singleton.Instance.GetCurrentPlayerData().PlayerQuest.Count; k++) { QuestFisheryProgressItem component2 = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent(); component2.index = k; component2.tab_category = (QuestFisheryProgressItem.Tab)tab; component2.QuestTitleText.text = GetQuestDescription(Singleton.Instance.GetCurrentPlayerData().PlayerQuest[k].gameQuest); component2.QuestPercentText.text = $"{Mathf.Round(Singleton.Instance.GetCurrentPlayerData().PlayerQuest[k].curentObjectiveProgress / Singleton.Instance.GetCurrentPlayerData().PlayerQuest[k].gameQuest.objectiveValue * 100f)}%"; } break; } case Tab.Weekly: { GameManager.TruncateContainer(QuestProgressContainer); CategoryImages[1].sprite = CategorySprites[1]; CategoryImages[1].rectTransform.sizeDelta = new Vector2(58f, 65.5f); for (int l = 0; l < Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest.Count; l++) { if (Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].isShowed) { QuestFisheryProgressItem component3 = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent(); component3.index = l; component3.tab_category = (QuestFisheryProgressItem.Tab)tab; component3.QuestTitleText.text = GetQuestDescription(Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].gameQuest); component3.QuestPercentText.text = $"{Mathf.Round(Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].curentObjectiveProgress / Singleton.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].gameQuest.objectiveValue * 100f)}%"; } } break; } case Tab.Monthly: { GameManager.TruncateContainer(QuestProgressContainer); CategoryImages[2].sprite = CategorySprites[1]; CategoryImages[2].rectTransform.sizeDelta = new Vector2(58f, 65.5f); for (int j = 0; j < Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest.Count; j++) { if (Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].isShowed) { QuestFisheryProgressItem component = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent(); component.index = j; component.tab_category = (QuestFisheryProgressItem.Tab)tab; component.QuestTitleText.text = GetQuestDescription(Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].gameQuest); component.QuestPercentText.text = $"{Mathf.Round(Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].curentObjectiveProgress / Singleton.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].gameQuest.objectiveValue * 100f)}%"; } } break; } } } private void Update() { if (Input.GetKeyDown(KeyCode.F3)) { if (GameManager.Instance.addectiveSceneLoaded != "none") { return; } isShow = !isShow; _ = isShow; } if (Input.GetKeyDown(KeyCode.CapsLock)) { if (!isShow) { return; } int num = (int)(tab + 1); if (num > 2) { num = 0; } tab = (Tab)num; Debug.Log(tab); ShowQuest(); } anim.SetBool("IsShow", isShow); } private string GetQuestDescription(GameManager.GameQuest gamequest) { string result = ""; switch (gamequest.questObjectiveType) { case GameManager.GameQuest.QuestObjectiveType.Catch_fish: result = LanguageManager.Instance.GetText("QUEST_CATCH_FISH").Replace("{NUMBER}", $"{gamequest.objectiveValue}"); break; case GameManager.GameQuest.QuestObjectiveType.Catch_fish_by_species: result = LanguageManager.Instance.GetText("QUEST_FISH_BY_SPECIES").Replace("{WEIGHT}", GameManager.Instance.ConvertWeight(gamequest.objectiveValue) + " ") + ": " + GameManager.Instance.gameFish[(int)gamequest.objectivefishSpecies].GetFishName(); break; case GameManager.GameQuest.QuestObjectiveType.Catch_fish_by_weight: result = LanguageManager.Instance.GetText("QUEST_FISH_BY_WEIGHT").Replace("{WEIGHT}", GameManager.Instance.ConvertWeight(gamequest.objectiveValue) ?? ""); break; case GameManager.GameQuest.QuestObjectiveType.Catch_fish_total_weight: result = LanguageManager.Instance.GetText("QUEST_FISH_TOTAL_WEIGHT").Replace("{WEIGHT}", GameManager.Instance.ConvertWeight(gamequest.objectiveValue) ?? ""); break; case GameManager.GameQuest.QuestObjectiveType.Spend_time: result = LanguageManager.Instance.GetText("QUEST_SPEND_TIME").Replace("{TIME}", $"{gamequest.objectiveValue} min"); break; } return result; } public void OnEnable() { if (Singleton.Instance.GetCurrentPlayerData().PlayerQuest.Count > 0) { ShowQuest(); } } }