Files
beyond/Assets/Scripts/Tutorial/PlantTreeStep.cs
2025-03-18 20:31:31 +01:00

79 lines
3.2 KiB
C#
Raw Blame History

using UnityEngine;
namespace Beyond
{
public class PlantTreeStep : MonoBehaviour
{
public BaseStepController baseStepController; // Odwo<77>anie do BaseStepController
public TreeSpotController treeSpotController; // Odwo<77>anie do kontrolera drzewa
public ConsumablesButtonController consumablesButtonController; // Kontroler przycisku do wiary
private bool isTreeGrown = false; // Flaga wskazuj<75>ca, czy drzewo wyros<6F>o
private bool shouldSkipToGrowthStep = false; // Flaga do okre<72>lenia, czy powinni<6E>my pomin<69><6E> krok 2
private void Start()
{
// Subskrybuje wydarzenie rozpocz<63>cia kroku tutoriala
baseStepController.OnStarted += OnStepStarted;
// Dodaje warunek do BaseStepController, kt<6B>ry okre<72>la, czy krok mo<6D>e zosta<74> zako<6B>czony
baseStepController.ConditionsAreMet += () => isTreeGrown;
// Subskrybuje zdarzenie zmiany stanu drzewa
if (treeSpotController != null)
{
treeSpotController.onStateChanged.AddListener(OnTreeStateChanged);
}
}
private void OnStepStarted()
{
// Resetujemy flagi na pocz<63>tku kroku
isTreeGrown = false;
shouldSkipToGrowthStep = false;
Debug.Log("Rozpocz<63>cie kroku: zasadz drzewo.");
// Sprawd<77> poziom wiary na pocz<63>tku kroku
if (IsFaithSufficient())
{
Debug.Log("Wiara jest wystarczaj<61>ca. Pomijamy krok <20>adowania wiary i przechodzimy do wzrostu drzewa.");
shouldSkipToGrowthStep = true;
}
}
private bool IsFaithSufficient()
{
// Zak<61>adamy, <20>e je<6A>li `imageParent` powi<77>zany z `ConsumablesFaith` jest aktywny, oznacza to wystarczaj<61>c<EFBFBD> ilo<6C><6F> wiary
if (consumablesButtonController != null)
{
return consumablesButtonController.imageParent.activeSelf;
}
return false;
}
private void OnTreeStateChanged(TreeState newState)
{
// Sprawdzamy, czy drzewo osi<73>gn<67>o etap wzrostu, kt<6B>ry uznajemy za "wyro<72>ni<6E>cie"
if (newState == TreeState.FreshlySeeded ||
newState == TreeState.SmallTree ||
newState == TreeState.MediumTree ||
newState == TreeState.FullyGrown)
{
if (shouldSkipToGrowthStep && (newState == TreeState.FreshlySeeded || newState == TreeState.SmallTree))
{
// Je<4A>li mamy wystarczaj<61>c<EFBFBD> ilo<6C><6F> wiary, pomijamy krok 2 i od razu ro<72>niemy do kolejnego etapu
Debug.Log("Pomijamy krok <20>adowania wiary i przechodzimy do kroku wzrostu drzewa.");
treeSpotController.GrowTree(); // Rozpoczynamy wzrost drzewa
}
else
{
// W przeciwnym razie zako<6B>cz krok 1 i przejd<6A> do kroku 2
isTreeGrown = true;
Debug.Log("Drzewo wyros<6F>o, krok tutoriala zako<6B>czony.");
}
}
}
}
}