Turn dev mode into sandbox menu

This commit is contained in:
Loïc Wisniewski 2026-09-03 20:05:33 +02:00
commit c325501999
19 changed files with 651 additions and 54 deletions

View file

@ -224,20 +224,24 @@ func _process(delta: float) -> bool:
return _fail("killing the whole wave did not bring the quiet back")
print("the wave died and the quiet came back")
# --- G. the dev button ---------------------------------------
var dev_button: Control = scene.get_node("UI/DevWaveButton")
# --- G. the dev menu keeps the immediate wave tool -----------
var dev_button: Control = scene.get_node("UI/DevMenuButton")
var dev_menu: Control = scene.get_node("UI/DevMenu")
game_state.dev_mode = false
dev_button._process(0.0)
if dev_button.visible:
return _fail("the dev wave button is offered in a normal game")
return _fail("the dev menu button is offered in a normal game")
game_state.dev_mode = true
dev_button._process(0.0)
if not dev_button.visible:
return _fail("the dev wave button is hidden in dev mode")
var number_before: int = game_state.wave_number
return _fail("the dev menu button is hidden in dev mode")
dev_button.button.pressed.emit()
if not dev_menu.visible:
return _fail("the dev button did not open the dev menu")
var number_before: int = game_state.wave_number
dev_menu.wave_button.pressed.emit()
if game_state.wave_phase != GameState.WAVE_PHASE_ACTIVE:
return _fail("the button left the wave in \"%s\"" % game_state.wave_phase)
return _fail("the menu's wave tool left the wave in \"%s\"" % game_state.wave_phase)
if not game_state.wave_pending:
return _fail("the button turned the wave active without owing it to anyone")
if game_state.wave_number != number_before + 1:
@ -249,7 +253,7 @@ func _process(delta: float) -> bool:
spawner._process(0.0)
if _enemy_count() <= 0:
return _fail("the forced wave produced no enemies")
print("dev button: wave %d on the board at once, %d enemies" \
print("dev menu: wave %d on the board at once, %d enemies" \
% [game_state.wave_number, _enemy_count()])
game_state.dev_mode = false