2025-05-13 19:22:01 +08:00

59 lines
1.1 KiB
C#

using System.Collections.Generic;
using System.ComponentModel;
using Godot;
using Godot.Bridge;
using Godot.NativeInterop;
[ScriptPath("res://Scripts/DangerZone.cs")]
public partial class DangerZone : Area2D
{
[Export(PropertyHint.None, "")]
private Node2D visibleBarriers;
public bool inside;
public override void _EnterTree()
{
base.BodyEntered += OnTriggerEnter;
base.BodyExited += OnTriggerExit;
if (visibleBarriers != null)
{
visibleBarriers.Modulate = Main.colorClear;
}
}
public override void _Process(double delta)
{
if (inside)
{
Player.instance.dangerZoneCD = 5f;
if (visibleBarriers != null)
{
visibleBarriers.Modulate = visibleBarriers.Modulate.Lerp(Main.colorWhite, 0.1f);
}
}
else if (visibleBarriers != null)
{
visibleBarriers.Modulate = visibleBarriers.Modulate.Lerp(Main.colorClear, 0.1f);
}
}
private void OnTriggerEnter(Node other)
{
if (other is Player && Player.instance.canInput)
{
inside = true;
Player.instance.UpdateOverlay();
}
}
private void OnTriggerExit(Node other)
{
if (other is Player)
{
inside = false;
}
}
}