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