extends RefCounted const NAMES := {"deposit":"Złoże surowców", "ruins":"Starożytna struktura", "warehouse":"Opuszczony magazyn", "village":"Opuszczona wioska", "cave":"Jaskinia"} const STAGES := { "deposit":["Zbierz odsłonięte minerały", "Wykonaj odwiert", "Wydobądź głęboką żyłę"], "ruins":["Przeszukaj przedsionek", "Otwórz komorę", "Zbadaj rdzeń"], "warehouse":["Przeszukaj skrzynie", "Otwórz zbrojownię", "Odblokuj skarbiec zaopatrzenia"], "village":["Przeszukaj domy", "Odzyskaj dzienniki mieszkańców", "Otwórz sejf osady"], "cave":["Zbadaj wejście", "Zejdź do groty", "Pobierz próbki z głębi"]} const PREVIEWS := { "deposit":["Rzadkie surowce planetarne", "Więcej rzadkich surowców", "Dużo rzadkich surowców"], "ruins":["Moduł: poziom układu +1", "Moduł: poziom układu +2", "Moduł: poziom układu +3"], "warehouse":["40–70 amunicji", "100–160 amunicji i 2–4 rakiety", "180–260 amunicji, 4–7 rakiet lub 30–50 amunicji radiacyjnej oraz surowce kosmiczne"], "village":["30–60 kredytów", "80–140 kredytów + 10% brakującego EXP do awansu", "220–360 kredytów"], "cave":["1 próbka do analizy", "2 próbki do analizy", "4 próbki do analizy"]} static func reward(kind: String, stage: int, rng: RandomNumberGenerator, profile: Dictionary, captain: Resource) -> Dictionary: var result := {} match kind: "deposit": var keys: Array = preload("res://scripts/planets/planet_profiles.gd").MATERIALS result[keys[rng.randi_range(0,keys.size()-1)]] = roundi(rng.randi_range(5,12)*(1.0+stage*0.65)*preload("res://scripts/planets/planet_rewards.gd").material_multiplier(profile)) "warehouse": result.ammunition = rng.randi_range([40,100,180][stage],[70,160,260][stage]) if stage == 1: result.missile = rng.randi_range(2,4) if stage == 2: if rng.randf() < 0.5: result.missile = rng.randi_range(4,7) else: result.irradiated_ammunition = rng.randi_range(30,50) var keys := ["iron","titanium","aluminium","uranium","sulfur"] result[keys[rng.randi_range(0,4)]] = roundi(rng.randi_range(8,16)*preload("res://scripts/planets/planet_rewards.gd").material_multiplier(profile)) "village": result.credits = rng.randi_range([30,80,220][stage],[60,140,360][stage]) if stage == 1: result.experience = maxi(1,ceili(maxi(0,captain.get_xp_required()-captain.experience)*0.1)) "cave": result.samples = [1,2,4][stage] return result