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