40 lines
1.9 KiB
GDScript
40 lines
1.9 KiB
GDScript
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()
|