169 lines
6.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|