Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/FisheryManager.cs
2026-02-21 16:45:37 +08:00

196 lines
7.0 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class FisheryManager : MonoBehaviour
{
private LevelsManager levelsManager;
public Text fisheryNrText;
public Text fisheryNameText;
public Text fisheryDescriptionText;
public Text fisherySoonText;
public Text fisheryFishSpeciesText;
public Text fisheryLocationText;
public Text fisheryHasRequirementsText;
public Text fisheryLockedText;
public Text fisheryEntryLicencesText;
public Text fisheryLevelText;
public GameObject dlcInfoParent;
public Image dlcBanner;
public Button btnRateDLC;
public Button btnMissionPlay;
public Button btnBuyLicence;
public Dropdown gameTypeDropdown;
[Space(10f)]
public Image thumbnail;
public Sprite thumbnailDefaultSprite;
private void Awake()
{
}
private void Start()
{
levelsManager = GlobalSettings.Instance.levelsManager;
thumbnailDefaultSprite = thumbnail.sprite;
RefreshInfo();
}
private void OnEnable()
{
if (!GameController.Instance)
{
if ((bool)levelsManager)
{
RefreshInfo();
}
GlobalSettings.Instance.levelsManager.isTournament = false;
}
}
private void Update()
{
}
public void ChangeMission(bool next)
{
levelsManager.currentFishery += (next ? 1 : (-1));
if (levelsManager.currentFishery < 0)
{
levelsManager.currentFishery = levelsManager.fisheryDefinitions.Count - 1;
}
else if (levelsManager.currentFishery >= levelsManager.fisheryDefinitions.Count)
{
levelsManager.currentFishery = 0;
}
RefreshInfo();
LevelsManager.FisheryDefinition currentFishery = levelsManager.GetCurrentFishery();
if (((bool)currentFishery.onlyCheat && !GlobalSettings.Instance.turnOnCheats) || ((bool)currentFishery.onlyInBeta && !GlobalSettings.Instance.isBeta && !GlobalSettings.Instance.turnOnCheats) || (!currentFishery.isAvailable && !currentFishery.isAvailableFromDLCs && !GlobalSettings.Instance.turnOnMyCheats))
{
ChangeMission(next);
}
}
public void RefreshInfo()
{
LevelsManager.FisheryDefinition currentFishery = levelsManager.GetCurrentFishery();
bool flag = (bool)currentFishery.isAvailable || GlobalSettings.Instance.turnOnMyCheats || ((bool)currentFishery.onlyCheat && GlobalSettings.Instance.turnOnCheats) || ((bool)currentFishery.onlyInBeta && (GlobalSettings.Instance.isBeta || GlobalSettings.Instance.turnOnCheats));
if (!currentFishery.isAvailableFromDLCs && !GlobalSettings.Instance.turnOnMyCheats)
{
flag = false;
}
fisheryNrText.text = Utilities.GetTranslation("MENU_MISSION") + " " + (levelsManager.currentFishery + 1);
fisheryNameText.text = Utilities.GetTranslation(currentFishery.name);
fisheryDescriptionText.text = Utilities.GetTranslation(currentFishery.description, true).Trim();
fisheryDescriptionText.GetComponent<FixLineBreaks>().Fix();
fisheryLocationText.text = Utilities.GetTranslation(currentFishery.location);
bool flag2 = levelsManager.CheckMissionRequirements(levelsManager.currentFishery);
fisheryLockedText.gameObject.SetActive(!levelsManager.GetCurrentFishery().isUnlocked);
fisheryHasRequirementsText.gameObject.SetActive(false);
if ((bool)currentFishery.thumbnail && (bool)currentFishery.isUnlocked)
{
thumbnail.sprite = currentFishery.thumbnail;
}
else
{
thumbnail.sprite = thumbnailDefaultSprite;
}
fisheryNameText.gameObject.SetActive(currentFishery.isUnlocked);
fisheryDescriptionText.gameObject.SetActive(currentFishery.isUnlocked);
fisheryEntryLicencesText.text = Utilities.GetTranslation("LEVELS/ENTRY_LICENCE") + ": " + currentFishery.availableEntries;
fisheryEntryLicencesText.gameObject.SetActive(false);
btnBuyLicence.gameObject.SetActive((int)currentFishery.availableEntries == 0 && flag2);
btnBuyLicence.GetComponentInChildren<Text>().text = string.Concat(Utilities.GetTranslation("LEVELS/BUY_LICENCE"), " ", currentFishery.entryPriceSmall, "$");
btnBuyLicence.interactable = (int)currentFishery.entryPriceSmall <= (int)GlobalSettings.Instance.playerSettings.playersMoney;
fisheryLevelText.text = Utilities.GetTranslation("GUI/SHOP_REQUIRED_LEVEL") + " " + currentFishery.requiredLevel;
fisheryLevelText.gameObject.SetActive((int)GlobalSettings.Instance.playerSettings.playersLevel < currentFishery.requiredLevel);
btnMissionPlay.gameObject.SetActive(flag && flag2 && (int)currentFishery.availableEntries != 0);
gameTypeDropdown.gameObject.SetActive(btnMissionPlay.gameObject.activeSelf);
if ((currentFishery.unitySceneName == "PinasBayOcean" && (int)levelsManager.GetFisheryByName("PinasBay").availableEntries != 0) || (currentFishery.unitySceneName == "PinasBay" && (int)levelsManager.GetFisheryByName("PinasBayOcean").availableEntries != 0))
{
btnMissionPlay.gameObject.SetActive(true);
gameTypeDropdown.gameObject.SetActive(true);
btnBuyLicence.gameObject.SetActive(false);
currentFishery.availableEntries = 1;
}
float num = ((!currentFishery.isAvailableFromDLCs) ? 0.8f : 1f);
thumbnail.color = new Color(num, num, num);
dlcInfoParent.SetActive(!currentFishery.isAvailableFromDLCs);
if (currentFishery.fromDLC.Count > 0)
{
dlcBanner.sprite = DLCManager.Instance.FindDLCSettings(currentFishery.fromDLC[0]).banner;
}
btnRateDLC.gameObject.SetActive(currentFishery.fromDLC.Count > 0 && (bool)currentFishery.isAvailableFromDLCs && btnMissionPlay.gameObject.activeSelf);
if (!flag)
{
fisheryEntryLicencesText.gameObject.SetActive(false);
btnBuyLicence.gameObject.SetActive(false);
btnMissionPlay.gameObject.SetActive(false);
fisheryLevelText.gameObject.SetActive(false);
}
fisheryFishSpeciesText.text = string.Empty;
for (int i = 0; i < currentFishery.fishSpecies.Count; i++)
{
FishManager.FishDefinition fishDefinition = GlobalSettings.Instance.fishManager.GetFishDefinition(currentFishery.fishSpecies[i]);
if (fishDefinition == null)
{
continue;
}
bool flag3 = fishDefinition.fromDLC.Count > 0 && fishDefinition.fromDLC[0] == DLCManager.DLC_ID.FISH_01 && !fishDefinition.isAvailableFromDLCs;
if (!flag3 && (fishDefinition.isAvailable || GlobalSettings.Instance.turnOnCheats || (fishDefinition.onlyInBeta && GlobalSettings.Instance.isBeta)))
{
if (flag3)
{
fisheryFishSpeciesText.text += "<color=lightblue>";
}
Text text = fisheryFishSpeciesText;
text.text = text.text + "* " + Utilities.GetTranslation(fishDefinition.fishPrefab.fishName);
if (flag3)
{
fisheryFishSpeciesText.text += " (Fish Pack DLC) </color>";
}
if (i < currentFishery.fishSpecies.Count - 1)
{
fisheryFishSpeciesText.text += "\n";
}
}
}
}
public void BuyEntry(bool small)
{
LevelsManager.FisheryDefinition currentFishery = levelsManager.GetCurrentFishery();
levelsManager.AddLicences(levelsManager.currentFishery, small ? 1 : 10);
GlobalSettings.Instance.playerSettings.AddMoney(small ? (-(int)currentFishery.entryPriceSmall) : 0);
GlobalSettings.Instance.playerSettings.Save();
RefreshInfo();
}
public void BuyDLC()
{
DLCManager.Instance.BuyDLC(levelsManager.GetCurrentFishery().fromDLC[0]);
}
public void RateDLC()
{
Utilities.OpenURL(DLCManager.Instance.FindDLCSettings(levelsManager.GetCurrentFishery().fromDLC[0]).GetDLCReviewUrl());
}
}