Bootstrap fight system

- Fight World data structure
- Generating basic fight world
- Opening correct fight room
- Block paths in fight rooms
- Transition between rooms
This commit is contained in:
jonathan
2025-09-12 13:20:27 +02:00
parent 759933c1cd
commit fd0e631b1f
34 changed files with 2456 additions and 11 deletions
+49
View File
@@ -0,0 +1,49 @@
using System.Diagnostics;
using Godot;
namespace Babushka.scripts.CSharp.Common.Fight;
public partial class PathSetup : Node
{
[Export] private int pathId;
[ExportCategory("Variants")] [Export] private CanvasItem closedVariant;
[Export] private CanvasItem nextRoomVariant;
public override void _Ready()
{
SetupPathVariant();
}
private void SetupPathVariant()
{
Debug.Assert(FightWorld.Instance.currentRoom != null);
if (FightWorld.Instance.currentRoom.paths.TryGetValue(pathId, out var nextRoom))
{
ShowOnlyVariant(nextRoomVariant);
}
else
{
ShowOnlyVariant(closedVariant);
}
}
private void ShowOnlyVariant(CanvasItem variantToShow)
{
HideVariant(closedVariant);
HideVariant(nextRoomVariant);
ShowVariant(variantToShow);
}
private void ShowVariant(CanvasItem variant)
{
variant.Visible = true;
variant.ProcessMode = ProcessModeEnum.Always;
}
private void HideVariant(CanvasItem variant)
{
variant.Visible = false;
variant.ProcessMode = ProcessModeEnum.Disabled;
}
}