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()