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