2025-06-23 09:19:41 +02:00
|
|
|
|
using Godot;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.Components.FSM._3DPlayer;
|
|
|
|
|
|
|
|
|
|
|
|
public partial class PlayerAcidDeathModule : ModuleBase<PlayerState, CharacterBody3D>
|
|
|
|
|
|
{
|
|
|
|
|
|
private bool _enabled = false;
|
|
|
|
|
|
|
|
|
|
|
|
public override void EnterState(PlayerState state)
|
|
|
|
|
|
{
|
|
|
|
|
|
_enabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void ExitState(PlayerState state)
|
|
|
|
|
|
{
|
|
|
|
|
|
_enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Init(IStateMachine<PlayerState, CharacterBody3D> machine)
|
|
|
|
|
|
{
|
2026-02-26 23:13:57 +01:00
|
|
|
|
base.Init(machine);
|
2025-06-23 09:19:41 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Process(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void PhysicsProcess(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnAcidCollision(Area3D area)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!_enabled) return;
|
|
|
|
|
|
GD.Print("Oh no acid");
|
2026-02-26 23:13:57 +01:00
|
|
|
|
StateMachine.SetState(PlayerState.Dead);
|
2025-06-23 09:19:41 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|