Files

23 lines
1.0 KiB
GDScript

extends SceneTree
func _initialize() -> void:
var cabinet := CabinetProfile.new()
var tempest: GameDefinition = load("res://data/games/tempest.tres")
cabinet.capabilities.assign([&"spinner", &"button_1", &"start_button"])
assert(not tempest.can_run_on(cabinet), "Superzapper requires a second button")
cabinet.capabilities.append(&"button_2")
assert(tempest.can_run_on(cabinet))
cabinet.capabilities.erase(&"spinner")
assert(not tempest.can_run_on(cabinet))
cabinet.capabilities.append(&"trackball")
assert(tempest.can_run_on(cabinet))
var robotron: GameDefinition = load("res://data/games/robotron.tres")
cabinet.capabilities.assign([&"dual_joystick_8way", &"start_button"])
assert(robotron.can_run_on(cabinet))
cabinet.capabilities.assign([&"joystick_8way", &"button_1", &"button_2", &"button_3", &"button_4", &"start_button"])
assert(robotron.can_run_on(cabinet))
cabinet.capabilities.erase(&"button_4")
assert(not robotron.can_run_on(cabinet))
print("PASS: cabinet control alternatives and common requirements")
quit()