extends Node const ORBS := preload("res://scripts/items/special_orbs.gd") func _ready() -> void: GameState.start_new_run() assert(not ORBS.IDS.has("booster") and not ORBS.COMMON_IDS.has("booster")) assert(ORBS.create_item("booster") == null and ORBS.icon("booster") == null) var player := preload("res://scenes/game/player_ship.tscn").instantiate() add_child(player) player.set_physics_process(false) player.get_node("WeaponController").set_physics_process(false) var inventory: ShipInventory = player.get_node("ShipInventory") var engine := ItemInstance.new() engine.definition = preload("res://resources/items/engine_extension.tres") inventory.module_slots[2] = engine var base_cost: float = player.get_mini_boost_energy_cost() engine.special_orbs.assign(["booster","atomic_engine"]) assert(is_equal_approx(player.get_mini_boost_energy_cost(),base_cost*0.5)) var old := ItemInstance.new() old.definition = ItemDefinition.new() old.definition.category = ItemDefinition.Category.CONSUMABLE old.definition.orb_id = "booster" inventory.cargo[0] = old GameState.captain.expedition.orbs = {"booster":10} GameState.captain.expedition.freighter_storage.append(old) GameState.captain.expedition.delivered_modules.append(old) inventory.migrate_orbs() assert(inventory.cargo[0] == null) assert(not engine.special_orbs.has("booster") and engine.special_orbs.has("atomic_engine")) assert(not GameState.captain.expedition.orbs.has("booster")) assert(GameState.captain.expedition.freighter_storage.is_empty()) assert(GameState.captain.expedition.delivered_modules.is_empty()) assert(not ORBS.apply(GameState.captain.expedition,inventory,engine,"booster")) player.energy = 0 Input.action_press("ship_mini_boost") player._update_mini_boost(0.1) Input.action_release("ship_mini_boost") assert(not player._mini_boost_active) print("RETIRED_ORB_TEST: PASS (removed orb, legacy cleanup, atomic engine retained, no free boost)") get_tree().quit()