Bull roll ability, console screen, tests
This commit is contained in:
@@ -20,6 +20,8 @@ func _run() -> void:
|
||||
test_debug_params_defaults()
|
||||
test_debug_params_clamp_values()
|
||||
test_debug_params_save_load_cycle()
|
||||
test_debug_params_flat_cache()
|
||||
test_debug_console_commands()
|
||||
test_matador_spawn_positions()
|
||||
test_matador_wander_target_in_bounds()
|
||||
test_matador_state_transitions()
|
||||
@@ -230,6 +232,57 @@ func test_debug_params_save_load_cycle() -> void:
|
||||
_assert_eq(dp.f("mat_walk_speed"), original, "restore original value")
|
||||
|
||||
|
||||
# The hot-read cache (f/b) and the metadata mirror (get_all()[k].value) must never
|
||||
# diverge across set / reset / reset_all.
|
||||
func test_debug_params_flat_cache() -> void:
|
||||
print("\n-- test_debug_params_flat_cache --")
|
||||
var dp: Node = root.get_node_or_null("/root/DP")
|
||||
if dp == null:
|
||||
_assert_true(false, "DP autoload should exist")
|
||||
return
|
||||
dp.set_value("mat_walk_speed", 6.25)
|
||||
_assert_eq(dp.f("mat_walk_speed"), 6.25, "flat cache reflects set_value")
|
||||
_assert_eq(dp.get_all()["mat_walk_speed"]["value"], 6.25, "metadata mirror agrees with cache")
|
||||
_assert_true(dp.is_modified("mat_walk_speed"), "is_modified true after set")
|
||||
dp.reset("mat_walk_speed")
|
||||
_assert_eq(dp.f("mat_walk_speed"), dp.get_all()["mat_walk_speed"]["default"],
|
||||
"reset(key) restores default in cache")
|
||||
_assert_true(not dp.is_modified("mat_walk_speed"), "is_modified false after reset")
|
||||
|
||||
|
||||
# The debug console verbs (toggle / reset <name> / set / diff / clear / help) must
|
||||
# mutate DP correctly and never crash on the read-only reporting commands.
|
||||
func test_debug_console_commands() -> void:
|
||||
print("\n-- test_debug_console_commands --")
|
||||
var dp: Node = root.get_node_or_null("/root/DP")
|
||||
var menu: Node = root.get_node_or_null("/root/Console")
|
||||
if dp == null or menu == null:
|
||||
_assert_true(false, "DP + Console autoloads should exist")
|
||||
return
|
||||
dp.set_value("show_bones", false)
|
||||
menu._execute("toggle show_bones")
|
||||
_assert_true(dp.b("show_bones"), "toggle flips bool on")
|
||||
menu._execute("toggle show_bones")
|
||||
_assert_true(not dp.b("show_bones"), "toggle flips bool off")
|
||||
|
||||
dp.set_value("mat_walk_speed", 4.0)
|
||||
menu._execute("toggle mat_walk_speed")
|
||||
_assert_eq(dp.f("mat_walk_speed"), 4.0, "toggle refuses a float param")
|
||||
|
||||
menu._execute("mat_walk_speed 6")
|
||||
_assert_eq(dp.f("mat_walk_speed"), 6.0, "console 'key value' sets the param")
|
||||
menu._execute("reset mat_walk_speed")
|
||||
_assert_eq(dp.f("mat_walk_speed"), dp.get_all()["mat_walk_speed"]["default"],
|
||||
"console 'reset <name>' restores default")
|
||||
|
||||
# Read-only reporting verbs must not raise.
|
||||
menu._execute("diff")
|
||||
menu._execute("clear")
|
||||
menu._execute("help")
|
||||
menu._execute("nonsense_key_xyz")
|
||||
_assert_true(true, "diff / clear / help / unknown key survive")
|
||||
|
||||
|
||||
func test_matador_spawn_positions() -> void:
|
||||
print("\n-- test_matador_spawn_positions --")
|
||||
var dp: Node = root.get_node_or_null("/root/DP")
|
||||
|
||||
Reference in New Issue
Block a user