Boss fixes, various changes

This commit is contained in:
2026-01-25 19:01:34 -08:00
parent 2622ed4423
commit 865934399d
25 changed files with 5770 additions and 371 deletions

View File

@@ -15,13 +15,13 @@ public partial class BossRoomA : Node3D, IBossRoom, IDungeonFloor
[Node] public Marker3D PlayerSpawn { get; set; } = default!;
[Node] public Node3D HorseHeadStatue { get; set; } = default!;
//[Node] public Node3D HorseHeadStatue { get; set; } = default!;
[Node] public Node3D OxFaceStatue { get; set; } = default!;
[Node] public BossTypeA OxFace { get; set; } = default!;
[Node] public BossTypeA HorseFace { get; set; } = default!;
//[Node] public BossTypeA HorseFace { get; set; } = default!;
[Node] public Area3D ActivateTrap { get; set; } = default!;
@@ -35,45 +35,45 @@ public partial class BossRoomA : Node3D, IBossRoom, IDungeonFloor
public void OnReady()
{
ActivateTrap.BodyEntered += ActivateTrap_BodyEntered;
_exit.AreaEntered += Exit_AreaEntered;
OxFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
HorseFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
ActivateTrap.BodyEntered += ActivateTrap_BodyEntered;
_exit.AreaEntered += Exit_AreaEntered;
OxFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
//HorseFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
}
private void ActivateTrap_BodyEntered(Node3D body)
{
ActivateTrap.BodyEntered -= ActivateTrap_BodyEntered;
StartBossFight();
ActivateTrap.BodyEntered -= ActivateTrap_BodyEntered;
StartBossFight();
}
public void StartBossFight()
{
OxFaceStatue.Hide();
HorseHeadStatue.Hide();
OxFace.StartFight();
HorseFace.StartFight();
OxFaceStatue.Hide();
//HorseHeadStatue.Hide();
OxFace.StartFight();
//HorseFace.StartFight();
}
private void CheckForBossFightEnd()
{
if (OxFace.HealthComponent.CurrentHP.Value <= 0 && HorseFace.HealthComponent.CurrentHP.Value <= 0)
OnBossFightEnded();
if (OxFace.HealthComponent.CurrentHP.Value <= 0) //&& HorseFace.HealthComponent.CurrentHP.Value <= 0)
OnBossFightEnded();
}
public void OnBossFightEnded()
{
GateCollision.CallDeferred(MethodName.QueueFree);
LOCKEDGATE.Hide();
GateCollision.CallDeferred(MethodName.QueueFree);
LOCKEDGATE.Hide();
}
public void ExitReached()
=> Game.FloorExitReached();
=> Game.FloorExitReached();
private void Exit_AreaEntered(Area3D area)
{
if (area.GetOwner() is IPlayer)
ExitReached();
if (area.GetOwner() is IPlayer)
ExitReached();
}
public void InitializeDungeon()