26 lines
1.5 KiB
GDScript
26 lines
1.5 KiB
GDScript
extends RefCounted
|
|
|
|
const MINERALS := ["iron", "titanium", "uranium", "aluminium", "sulfur"]
|
|
const NAMES := {"iron": "Żelazo", "titanium": "Tytan", "uranium": "Uran", "aluminium": "Aluminium", "sulfur": "Siarka"}
|
|
const COLORS := {"iron": Color("c5b5a0"), "titanium": Color("9ecbe9"), "uranium": Color("a9ef83"), "aluminium": Color("dce8ef"), "sulfur": Color("f4d466")}
|
|
const IDS := ["parts", "ammunition", "missile", "energy_bank", "irradiated_ammunition"]
|
|
# Base asteroid yield increased from mean 2 (1-3) to mean 6 (5-7).
|
|
# Most recipes retain triple mineral costs; ordinary ammunition uses its own balance.
|
|
const DATA := {
|
|
"parts": {"name": "Części", "amount": 1, "cost": {"titanium": 3, "iron": 3, "aluminium": 3}},
|
|
"ammunition": {"name": "Amunicja", "amount": 10, "cost": {"iron": 1, "sulfur": 1}},
|
|
"missile": {"name": "Rakieta", "amount": 1, "cost": {"iron": 3, "sulfur": 3, "uranium": 3}},
|
|
"energy_bank": {"name": "Powerbank", "amount": 1, "cost": {"iron": 3, "aluminium": 3}},
|
|
"irradiated_ammunition": {"name": "Amunicja radiacyjna", "amount": 50, "cost": {"titanium": 3, "uranium": 3}},
|
|
}
|
|
|
|
static func icon(id: String) -> Texture2D:
|
|
var extension := "svg" if id == "energy_bank" else "png"
|
|
return load("res://assets/icons/resources/%s.%s" % [id, extension]) as Texture2D
|
|
|
|
static func output_amount(id: String, captain: Resource) -> int:
|
|
var amount := int(DATA[id]["amount"])
|
|
if id in ["ammunition", "irradiated_ammunition"]:
|
|
amount = roundi(amount * (1.0 + captain.get_skill_bonus("gunsmith")))
|
|
return amount
|