50 lines
2.5 KiB
GDScript
50 lines
2.5 KiB
GDScript
extends "res://scripts/game/game.gd"
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
set_physics_process(false)
|
|
player.set_physics_process(false)
|
|
player.get_node("WeaponController").set_physics_process(false)
|
|
for enemy in get_tree().get_nodes_in_group("enemies"):
|
|
enemy.set_physics_process(false)
|
|
player.position = protected_planet.position + Vector2(float(protected_planet.get("radius")) * 0.75, 0)
|
|
player.reset_physics_interpolation()
|
|
GameState.captain.credits = 2500
|
|
GameState.captain.skills["business_shark"] = 2
|
|
var inventory := player.get_node("ShipInventory") as ShipInventory
|
|
inventory.ammunition = 240
|
|
inventory.irradiated_ammunition = 12
|
|
inventory.missile_ammunition = 7
|
|
services_menu.show_services(false)
|
|
await get_tree().create_timer(0.5).timeout
|
|
assert(services_menu.get("panel").size.x <= 340.0)
|
|
assert(services_menu.get("panel").size.y <= 290.0)
|
|
var manager := get_node("PlanetExpeditions")
|
|
manager._process(0)
|
|
manager._layout_prompt()
|
|
if manager._prompt.visible:
|
|
assert(not services_menu.get_global_rect().intersects(manager._prompt.get_global_rect()),"Supply and telemetry cards must not overlap")
|
|
if "--capture-preview" in OS.get_cmdline_user_args():
|
|
await RenderingServer.frame_post_draw
|
|
get_viewport().get_texture().get_image().save_png("res://artifacts/planet_services_preview.png")
|
|
print("PLANET_SERVICES_PREVIEW: captured ", services_menu.get("panel").size)
|
|
var credits := GameState.captain.credits
|
|
var cost := inventory.get_ammunition_buy_cost()
|
|
services_menu.get("buy_ammunition_button").pressed.emit()
|
|
assert(inventory.ammunition == 340 and GameState.captain.credits == credits - cost)
|
|
credits = GameState.captain.credits
|
|
cost = inventory.get_irradiated_ammunition_buy_cost()
|
|
services_menu.get("_gamma_buy").pressed.emit()
|
|
assert(inventory.irradiated_ammunition == 22 and GameState.captain.credits == credits - cost)
|
|
credits = GameState.captain.credits
|
|
cost = inventory.get_missile_buy_cost()
|
|
services_menu.get("_missile_button").pressed.emit()
|
|
assert(inventory.missile_ammunition == 8 and GameState.captain.credits == credits - cost)
|
|
GameState.captain.credits = 0
|
|
GameState.captain.emit_changed()
|
|
assert(services_menu.get("buy_ammunition_button").disabled and services_menu.get("_gamma_buy").disabled and services_menu.get("_missile_button").disabled)
|
|
services_menu.show_services(false, true)
|
|
assert(services_menu.get("next_button").disabled)
|
|
print("PLANET_SERVICES_TEST: PASS compact dimensions, all purchases, discounts, stock refresh, insufficient credits and portal state")
|
|
get_tree().quit()
|