Huge wave flag

This commit is contained in:
Rendo 2025-07-16 21:55:47 +05:00
commit 19e16c62d7
5 changed files with 30 additions and 12 deletions

View file

@ -8,4 +8,5 @@ public partial class WaveData : Resource
[Export] public Array<RowSpawn> zombiesOrdered = new();
[Export] public Array<WaveEvent> events = new();
[Export] public float customWaveDelay = 0;
[Export] public bool isHugeWave;
}

View file

@ -33,11 +33,12 @@ public partial class AdventureResourceInspector : Node
private void RefreshTree()
{
EmitSignal(SignalName.Refreshed);
tree.Clear();
root = tree.CreateItem();
root.DisableFolding = true;
root.SetText(0, "Level");
EmitSignal(SignalName.Refreshed);
var initial = tree.CreateItem(root);
initial.SetText(0, "Initial data");
@ -55,6 +56,12 @@ public partial class AdventureResourceInspector : Node
var spawns = tree.CreateItem(item);
spawns.SetText(0, "Events");
var huge_wave = tree.CreateItem(item);
huge_wave.SetCellMode(0, TreeItem.TreeCellMode.Check);
huge_wave.SetChecked(0, heldResource.waves[i].isHugeWave);
huge_wave.SetText(0, "Is huge wave?");
huge_wave.SetEditable(0, true);
var delay = tree.CreateItem(item);
if (heldResource.waves[i].customWaveDelay > 0)
delay.SetText(0, heldResource.waves[i].customWaveDelay.ToString(new CultureInfo("en-US")));
@ -113,15 +120,25 @@ public partial class AdventureResourceInspector : Node
public void OnItemEdited()
{
var selected = tree.GetEdited();
if (float.TryParse(selected.GetText(0), new CultureInfo("en-US"), out float result))
if (selected.GetCellMode(0) == TreeItem.TreeCellMode.Check)
{
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = result;
heldResource.waves[GetWaveIndex(selected.GetParent())].isHugeWave = selected.IsChecked(0);
}
else
{
selected.SetText(0, "Delay");
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = 0;
if (float.TryParse(selected.GetText(0), new CultureInfo("en-US"), out float result))
{
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = result;
}
else
{
selected.SetText(0, "Delay");
heldResource.waves[GetWaveIndex(selected.GetParent())].customWaveDelay = 0;
}
}
Callable.From(RefreshTree).CallDeferred();
}
public void OnTreeButtonClicked(TreeItem item, int column, int id, int button_index)
{