79 lines
3.2 KiB
C#
79 lines
3.2 KiB
C#
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.");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|