|
|
|
@ -42,9 +42,9 @@ public partial class PlantBehaviour2D : Node2D
|
|
|
|
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
|
|
|
|
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
GD.Print("Trying to grow something here.");
|
|
|
|
|
|
|
|
GetTree().CallGroup("PlantGrowing", Player2D.MethodName.PlayFarmingAnimation);
|
|
|
|
GetTree().CallGroup("PlantGrowing", Player2D.MethodName.PlayFarmingAnimation);
|
|
|
|
|
|
|
|
// todo:
|
|
|
|
|
|
|
|
// find out why the last plant stage is being skipped the second time around
|
|
|
|
switch (_state)
|
|
|
|
switch (_state)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
case PlantState.None:
|
|
|
|
case PlantState.None:
|
|
|
|
@ -68,13 +68,14 @@ public partial class PlantBehaviour2D : Node2D
|
|
|
|
_state = PlantState.Ready;
|
|
|
|
_state = PlantState.Ready;
|
|
|
|
_currentPlantSprite.Visible = false;
|
|
|
|
_currentPlantSprite.Visible = false;
|
|
|
|
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
|
|
|
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
|
|
|
_harvestablePlant.IsActive = true;
|
|
|
|
|
|
|
|
_currentPlantSprite.Visible = true;
|
|
|
|
_currentPlantSprite.Visible = true;
|
|
|
|
|
|
|
|
ActivatePickupAfterDelay(true);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case PlantState.Ready:
|
|
|
|
case PlantState.Ready:
|
|
|
|
_state = PlantState.None;
|
|
|
|
_state = PlantState.None;
|
|
|
|
_currentPlantSprite.Visible = false;
|
|
|
|
_currentPlantSprite.Visible = false;
|
|
|
|
_currentPlantSprite = null;
|
|
|
|
_currentPlantSprite = null;
|
|
|
|
|
|
|
|
ActivatePickupAfterDelay(false);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
@ -90,6 +91,18 @@ public partial class PlantBehaviour2D : Node2D
|
|
|
|
return sprites[rand.Next(sprites.Length)];
|
|
|
|
return sprites[rand.Next(sprites.Length)];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public async void ActivatePickupAfterDelay(bool activate)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
|
|
|
|
|
|
|
|
SetActiveHarvestablePlant(activate);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void SetActiveHarvestablePlant(bool active)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_harvestablePlant.IsActive = active;
|
|
|
|
|
|
|
|
_harvestablePlant.UpdateVisuals();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void SayMagicWord(string wordEvent)
|
|
|
|
public void SayMagicWord(string wordEvent)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (_magicWordDialogicEventName != wordEvent)
|
|
|
|
if (_magicWordDialogicEventName != wordEvent)
|
|
|
|
|