Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/QuestFisheryProgress.cs
2026-03-04 10:03:45 +08:00

169 lines
6.2 KiB
C#

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<Animator>();
ShowQuest();
}
public void ShowQuest()
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerQuest.Count == 0 && Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerWeeklyQuest.Count == 0 && Singleton<SaveDataManager>.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<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerQuest.Count; k++)
{
QuestFisheryProgressItem component2 = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent<QuestFisheryProgressItem>();
component2.index = k;
component2.tab_category = (QuestFisheryProgressItem.Tab)tab;
component2.QuestTitleText.text = GetQuestDescription(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerQuest[k].gameQuest);
component2.QuestPercentText.text = $"{Mathf.Round(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerQuest[k].curentObjectiveProgress / Singleton<SaveDataManager>.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<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerWeeklyQuest.Count; l++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].isShowed)
{
QuestFisheryProgressItem component3 = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent<QuestFisheryProgressItem>();
component3.index = l;
component3.tab_category = (QuestFisheryProgressItem.Tab)tab;
component3.QuestTitleText.text = GetQuestDescription(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].gameQuest);
component3.QuestPercentText.text = $"{Mathf.Round(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerWeeklyQuest[l].curentObjectiveProgress / Singleton<SaveDataManager>.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<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerMonthlyQuest.Count; j++)
{
if (Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].isShowed)
{
QuestFisheryProgressItem component = Object.Instantiate(QuestProgressPrefab, QuestProgressContainer).GetComponent<QuestFisheryProgressItem>();
component.index = j;
component.tab_category = (QuestFisheryProgressItem.Tab)tab;
component.QuestTitleText.text = GetQuestDescription(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].gameQuest);
component.QuestPercentText.text = $"{Mathf.Round(Singleton<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerMonthlyQuest[j].curentObjectiveProgress / Singleton<SaveDataManager>.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<SaveDataManager>.Instance.GetCurrentPlayerData().PlayerQuest.Count > 0)
{
ShowQuest();
}
}
}