Skip to content

Commit

Permalink
Missions (#67)
Browse files Browse the repository at this point in the history
* Mission resource type

* Add forfeited state, and validate transitions

* WIP checking and updating mission status

* WIP

* Connect MissionController to Player

* Docs for `MissionController`

* Add planets to StarSystem

* Add planets_with_systems lookup from galaxy

* Logic to create a random delivery mission

* WIP mission computer window

* Connect missions button in landing screen

* Change planet -> star system lookup into a weak ref, like systems in galaxy

* No need for `galaxy` parameter to `create_random_delivery_mission`

* Enable missions on some more planets

* Missions window

* Add cargo to hold when starting mission too

* Fix out of bounds on pick_random_special()

* Fix money display

* %i totally screws things up, whoops

* Set tooltip text when button is enabled

* Fix mission description layout

* WIP debugging why mission success isn't working

* Rename "missions window" to "mission computer window"

* In-game mission log UI

* Fix `toggle_mission_log` action

* Change diplomatic "pouches" to "parcel"

* Remove mission cargo on failure

* Fix mission success causing mission failure

* Memoize generated missions on PlanetInstance

So they don't regenerate every time the player lands.

* Ensure `MissionController` is saved

* Convenience functions for serializing dictionaries with resource keys

* Fix mission loading and saving

* Rush delivery mission type

* Fail missions past their deadline

* Re-check mission failure when calendar updates

* Add to message log when missions succeed, fail, etc.

* Note the limitation of _randomly_walk_systems

* Increase deposit of rush deliveries too

* Add a couple more special commodities
  • Loading branch information
jspahrsummers authored Aug 13, 2024
1 parent b622c0c commit d284070
Show file tree
Hide file tree
Showing 42 changed files with 1,064 additions and 63 deletions.
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ Your new scene file is now the canvas upon which to create your star system! You

Add planets to your system by instantiating the `planet_instance.tscn` scene. To customize the planet's appearance (sprite) or other properties, right-click the planet instance in the scene tree and enable "Editable Children."

If you want the player to be able to land on your new planet, create a [`Planet`](planet/planet.gd) resource in [planet/planets/](planet/planets/), and set the `planet` property of the `PlanetInstance` to the new resource. Then, fill in the `Planet` properties, especially the landscape image and the description that the player will see when they land. (You can also [use AI to help here](./README.md#use-of-ai)!)
If you want the player to be able to land on your new planet, create a [`Planet`](planet/planet.gd) resource in [planet/planets/](planet/planets/), and set the `planet` property of the `PlanetInstance` to the new resource. Add the `Planet` resource to the `planets` array of the `StarSystem` as well.

Then, fill in the `Planet` properties, especially the landscape image and the description that the player will see when they land. (You can also [use AI to help here](./README.md#use-of-ai)!)

#### Stars

Expand Down
12 changes: 11 additions & 1 deletion actors/player.gd
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_name Player
@export var takeoff_sound: AudioStreamPlayer
@export var bank_account: BankAccount
@export var calendar: Calendar
@export var mission_controller: MissionController

@onready var ship := get_parent() as Ship

Expand All @@ -32,6 +33,9 @@ signal target_changed(player: Player, target: CombatObject)
## Fires when the player changes their landing target.
signal landing_target_changed(player: Player, target: PlanetInstance)

## Fires when the player lands on a planet.
signal landed(player: Player, planet: Planet)

## Fires when the ship's hyperdrive changes.
signal hyperdrive_changed(player: Player, hyperdrive: Hyperdrive)

Expand Down Expand Up @@ -97,6 +101,10 @@ func _ready() -> void:
if self.ship.hyperdrive:
self._on_hyperdrive_changed()
self.ship.hyperdrive.changed.connect(_on_hyperdrive_changed)

self.mission_controller.calendar = self.calendar
self.mission_controller.cargo_hold = self.ship.cargo_hold
self.mission_controller.bank_account = self.bank_account

func _on_hull_changed() -> void:
self.hull_changed.emit(self, self.ship.hull)
Expand Down Expand Up @@ -236,7 +244,7 @@ func _land() -> void:

var landing: Landing = self.landing_scene.instantiate()
landing.player = self
landing.planet = planet
landing.planet_instance = self.landing_target
landing.star_system = self.ship.hyperdrive_system.current_system()
self.ship.add_sibling(landing)
self.ship.get_parent().remove_child(self.ship)
Expand All @@ -246,6 +254,8 @@ func _land() -> void:
landing.add_sibling(self.ship)
landing.queue_free()
self._depart_from_planet())

self.landed.emit(self, planet)

func _depart_from_planet() -> void:
self.calendar.pass_approximate_days(PLANET_LANDING_APPROXIMATE_DAYS)
Expand Down
11 changes: 9 additions & 2 deletions actors/player.tscn
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://cxlg0yj8cjbrf"]
[gd_scene load_steps=9 format=3 uid="uid://cxlg0yj8cjbrf"]

[ext_resource type="Script" path="res://actors/player.gd" id="1_qxs3b"]
[ext_resource type="PackedScene" uid="uid://d1kbmfvjs6nrv" path="res://screens/landing/landing.tscn" id="2_2bp8c"]
[ext_resource type="AudioStream" uid="uid://b5h867m6j0kb2" path="res://screens/landing/audio/LandingGear.ogg" id="2_lqyst"]
[ext_resource type="Script" path="res://mechanics/economy/bank_account.gd" id="3_0316y"]
[ext_resource type="Script" path="res://mechanics/time/calendar.gd" id="4_x2dfd"]
[ext_resource type="Script" path="res://mechanics/missions/mission_controller.gd" id="6_502td"]

[sub_resource type="Resource" id="Resource_bycam"]
script = ExtResource("3_0316y")
Expand All @@ -13,12 +14,13 @@ currencies = {}
[sub_resource type="Resource" id="Resource_8aheh"]
script = ExtResource("4_x2dfd")

[node name="Player" type="Node3D" node_paths=PackedStringArray("takeoff_sound")]
[node name="Player" type="Node3D" node_paths=PackedStringArray("takeoff_sound", "mission_controller")]
script = ExtResource("1_qxs3b")
landing_scene = ExtResource("2_2bp8c")
takeoff_sound = NodePath("TakeoffSound")
bank_account = SubResource("Resource_bycam")
calendar = SubResource("Resource_8aheh")
mission_controller = NodePath("MissionController")

[node name="MinimapCameraRemoteTransform" type="RemoteTransform3D" parent="."]
update_rotation = false
Expand All @@ -37,3 +39,8 @@ stream = ExtResource("2_lqyst")

[node name="AudioListener3D" type="AudioListener3D" parent="."]
current = true

[node name="MissionController" type="Node3D" parent="." groups=["saveable"]]
script = ExtResource("6_502td")

[connection signal="landed" from="." to="MissionController" method="_on_player_landed"]
8 changes: 7 additions & 1 deletion galaxy/galaxy.gd
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,15 @@ class_name Galaxy
## A list of all systems in the galaxy.
@export var systems: Array[StarSystem]

## A list of all planets in the galaxy.
var planets: Array = []

func _init() -> void:
self._connect_backref.call_deferred()

for system in self.systems:
self.planets.append_array(system.planets)

func _connect_backref() -> void:
for system in self.systems:
system.galaxy = weakref(self)
Expand All @@ -20,5 +26,5 @@ func get_system(name: StringName) -> StarSystem:
for system in systems:
if system.name == name:
return system

return null
2 changes: 1 addition & 1 deletion galaxy/main_galaxy.tres
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
[ext_resource type="Resource" uid="uid://bowucldo27rjd" path="res://galaxy/star_system/star_systems/zephyria.tres" id="7_puhoc"]
[ext_resource type="Resource" uid="uid://cu1wn7ldbgeej" path="res://galaxy/star_system/star_systems/thalassa.tres" id="8_4yki3"]
[ext_resource type="Resource" uid="uid://ku5qjeo4jlkt" path="res://galaxy/star_system/star_systems/nova_lumina.tres" id="9_qqkio"]
[ext_resource type="Resource" path="res://galaxy/star_system/star_systems/helios.tres" id="10_fsj5o"]
[ext_resource type="Resource" uid="uid://nbm8is7uln37" path="res://galaxy/star_system/star_systems/helios.tres" id="10_fsj5o"]

[resource]
script = ExtResource("1_bckai")
Expand Down
16 changes: 16 additions & 0 deletions galaxy/star_system/star_system.gd
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ class_name StarSystem
## The resource path to this star system's scene.
@export_file("*.tscn") var scene_path: String

## All landable planets in this star system.
@export var planets: Array[Planet] = []

## The trading market in this star system, if any.
@export var market: Market

Expand Down Expand Up @@ -49,5 +52,18 @@ func refueling_price() -> float:
var price_in_credits := MathUtils.relative_to_absolute_price(self.refueling_relative_price, self.REFUELING_BASE_PRICE_IN_CREDITS, self.REFUELING_PRICE_MAX_DEVIATION)
return self.refueling_money.price_converted_from_credits(price_in_credits)

## Infers the preferred money in this star system, based either on its trading market or how refueling is paid.
##
## Returns null if it cannot be determined.
func preferred_money() -> TradeAsset:
return self.market.money if self.market else self.refueling_money

func _init() -> void:
self._connect_backref.call_deferred()

func _connect_backref() -> void:
for planet in self.planets:
planet.star_system = weakref(self)

func _to_string() -> String:
return "StarSystem:" + self.name
1 change: 1 addition & 0 deletions galaxy/star_system/star_systems/alpha_centauri.tres
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ name = &"Alpha Centauri"
connections = Array[StringName]([&"Sol", &"Wolf 359", &"Zephyria"])
position = Vector3(-1.5, 0.2, -2.3)
scene_path = "res://galaxy/star_system/scenes/alpha_centauri.tscn"
planets = null
refueling_relative_price = 0.0
3 changes: 2 additions & 1 deletion galaxy/star_system/star_systems/barnard's_star.tres
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ name = &"Barnard\'s Star"
connections = Array[StringName]([&"Sol", &"Helios"])
position = Vector3(-3, 2.08165e-12, 2.08165e-12)
scene_path = "res://galaxy/star_system/scenes/barnard's_star.tscn"
refueling_relative_price = 0.5
planets = null
refueling_relative_price = null
4 changes: 3 additions & 1 deletion galaxy/star_system/star_systems/helios.tres
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
[gd_resource type="Resource" script_class="StarSystem" load_steps=3 format=3 uid="uid://nbm8is7uln37"]
[gd_resource type="Resource" script_class="StarSystem" load_steps=4 format=3 uid="uid://nbm8is7uln37"]

[ext_resource type="Resource" uid="uid://b764gd8q3il6s" path="res://mechanics/economy/currencies/credits.tres" id="1_axqux"]
[ext_resource type="Script" path="res://galaxy/star_system/star_system.gd" id="1_rf1b6"]
[ext_resource type="Resource" uid="uid://dd61sms23ju2r" path="res://planet/planets/pyra.tres" id="1_uqygg"]

[resource]
script = ExtResource("1_rf1b6")
name = &"Helios"
connections = Array[StringName]([&"Thalassa", &"Barnard\'s Star"])
position = Vector3(-1.3, 2.08165e-12, 1.7)
scene_path = "res://galaxy/star_system/scenes/helios.tscn"
planets = Array[Resource("res://planet/planet.gd")]([ExtResource("1_uqygg")])
refueling_money = ExtResource("1_axqux")
refueling_relative_price = 0.734
6 changes: 5 additions & 1 deletion galaxy/star_system/star_systems/nova_lumina.tres
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="StarSystem" load_steps=15 format=3 uid="uid://ku5qjeo4jlkt"]
[gd_resource type="Resource" script_class="StarSystem" load_steps=18 format=3 uid="uid://ku5qjeo4jlkt"]

[ext_resource type="Script" path="res://galaxy/star_system/star_system.gd" id="1_j0i0x"]
[ext_resource type="Resource" uid="uid://dd63q3wg4vrk" path="res://mechanics/economy/commodities/biological_samples.tres" id="1_jupt3"]
Expand All @@ -13,6 +13,9 @@
[ext_resource type="Resource" uid="uid://lkpwswpw8ss4" path="res://mechanics/economy/commodities/precious_metals.tres" id="8_3gu2w"]
[ext_resource type="Resource" uid="uid://dl132ceubbcos" path="res://mechanics/economy/commodities/rare_earth_elements.tres" id="9_ce4dd"]
[ext_resource type="Resource" uid="uid://bnw61s2hj8a0m" path="res://mechanics/economy/commodities/water.tres" id="10_k521h"]
[ext_resource type="Resource" uid="uid://duf1gpmd1ydk7" path="res://planet/planets/auroris.tres" id="13_xe2f2"]
[ext_resource type="Resource" uid="uid://ooe0w4eaywk3" path="res://planet/planets/lumina_prime.tres" id="14_g8v4d"]
[ext_resource type="Resource" uid="uid://cq4qs7xackj8j" path="res://planet/planets/novus.tres" id="15_2ogxd"]

[sub_resource type="Resource" id="Resource_7y1hy"]
script = ExtResource("1_solmg")
Expand All @@ -36,6 +39,7 @@ name = &"Nova Lumina"
connections = Array[StringName]([&"Zephyria", &"Wolf 359"])
position = Vector3(-1.2, 0.4, -7.1)
scene_path = "res://galaxy/star_system/scenes/nova_lumina.tscn"
planets = Array[Resource("res://planet/planet.gd")]([ExtResource("13_xe2f2"), ExtResource("14_g8v4d"), ExtResource("15_2ogxd")])
market = SubResource("Resource_7y1hy")
refueling_money = ExtResource("1_tb2fi")
refueling_relative_price = 0.237
1 change: 1 addition & 0 deletions galaxy/star_system/star_systems/sirius.tres
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ name = &"Sirius"
connections = Array[StringName]([&"Wolf 359", &"Sol"])
position = Vector3(4, -0.5, -1)
scene_path = "res://galaxy/star_system/scenes/sirius.tscn"
planets = null
refueling_relative_price = 0.0
9 changes: 6 additions & 3 deletions galaxy/star_system/star_systems/sol.tres
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="StarSystem" load_steps=18 format=3 uid="uid://cew4x137v08q"]
[gd_resource type="Resource" script_class="StarSystem" load_steps=20 format=3 uid="uid://cew4x137v08q"]

[ext_resource type="Script" path="res://galaxy/star_system/star_system.gd" id="1_ewhsc"]
[ext_resource type="Resource" uid="uid://bnw61s2hj8a0m" path="res://mechanics/economy/commodities/water.tres" id="1_g3m08"]
Expand All @@ -16,6 +16,8 @@
[ext_resource type="Resource" uid="uid://bj7201uluhfpk" path="res://mechanics/economy/commodities/semiconductors.tres" id="13_qtdhe"]
[ext_resource type="Resource" uid="uid://b764gd8q3il6s" path="res://mechanics/economy/currencies/credits.tres" id="14_yyru0"]
[ext_resource type="Script" path="res://mechanics/economy/market.gd" id="15_v0bfu"]
[ext_resource type="Resource" uid="uid://cmm0akidhocmo" path="res://planet/planets/earth.tres" id="16_bjai2"]
[ext_resource type="Resource" uid="uid://c0oe5ys0462x0" path="res://planet/planets/mars.tres" id="17_1phbv"]

[sub_resource type="Resource" id="Resource_tj2o3"]
script = ExtResource("15_v0bfu")
Expand All @@ -40,8 +42,9 @@ ExtResource("1_g3m08"): 0.21
script = ExtResource("1_ewhsc")
name = &"Sol"
connections = Array[StringName]([&"Alpha Centauri", &"Barnard\'s Star", &"Sirius", &"Thalassa"])
position = Vector3(0, 0, 0)
position = null
scene_path = "res://galaxy/star_system/scenes/sol.tscn"
planets = Array[Resource("res://planet/planet.gd")]([ExtResource("16_bjai2"), ExtResource("17_1phbv")])
market = SubResource("Resource_tj2o3")
refueling_money = ExtResource("14_yyru0")
refueling_relative_price = 0.5
refueling_relative_price = null
5 changes: 4 additions & 1 deletion galaxy/star_system/star_systems/thalassa.tres
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="StarSystem" load_steps=12 format=3 uid="uid://cu1wn7ldbgeej"]
[gd_resource type="Resource" script_class="StarSystem" load_steps=14 format=3 uid="uid://cu1wn7ldbgeej"]

[ext_resource type="Script" path="res://galaxy/star_system/star_system.gd" id="1_0hn02"]
[ext_resource type="Resource" uid="uid://b764gd8q3il6s" path="res://mechanics/economy/currencies/credits.tres" id="1_add1a"]
Expand All @@ -10,6 +10,8 @@
[ext_resource type="Resource" uid="uid://dhxbtnaoc1nuo" path="res://mechanics/economy/commodities/medical_supplies.tres" id="7_s2brr"]
[ext_resource type="Resource" uid="uid://ccvds2nloqvwn" path="res://mechanics/economy/commodities/industrial_equipment.tres" id="8_ei3p8"]
[ext_resource type="Resource" uid="uid://dl132ceubbcos" path="res://mechanics/economy/commodities/rare_earth_elements.tres" id="9_vsdb2"]
[ext_resource type="Resource" uid="uid://bcxt6a254xlc6" path="res://planet/planets/gaia_prime.tres" id="10_v1q0h"]
[ext_resource type="Resource" uid="uid://dlabxdxx15pp7" path="res://planet/planets/aeolus.tres" id="11_kq5o6"]

[sub_resource type="Resource" id="Resource_h1m1b"]
script = ExtResource("2_xwx77")
Expand All @@ -30,6 +32,7 @@ name = &"Thalassa"
connections = Array[StringName]([&"Sol", &"Helios"])
position = Vector3(-0.5, -0.1, 2.7)
scene_path = "res://galaxy/star_system/scenes/thalassa.tscn"
planets = Array[Resource("res://planet/planet.gd")]([ExtResource("10_v1q0h"), ExtResource("11_kq5o6")])
market = SubResource("Resource_h1m1b")
refueling_money = ExtResource("1_add1a")
refueling_relative_price = 0.63
1 change: 1 addition & 0 deletions galaxy/star_system/star_systems/wolf_359.tres
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ name = &"Wolf 359"
connections = Array[StringName]([&"Alpha Centauri", &"Sirius", &"Nova Lumina"])
position = Vector3(1, 2.08165e-12, -5)
scene_path = "res://galaxy/star_system/scenes/wolf_359.tscn"
planets = null
refueling_relative_price = 0.0
4 changes: 3 additions & 1 deletion galaxy/star_system/star_systems/zephyria.tres
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
[gd_resource type="Resource" script_class="StarSystem" load_steps=8 format=3 uid="uid://bowucldo27rjd"]
[gd_resource type="Resource" script_class="StarSystem" load_steps=9 format=3 uid="uid://bowucldo27rjd"]

[ext_resource type="Resource" uid="uid://dnutrj5jdgiaj" path="res://mechanics/economy/commodities/food.tres" id="1_dbjat"]
[ext_resource type="Resource" uid="uid://b764gd8q3il6s" path="res://mechanics/economy/currencies/credits.tres" id="1_gu0r8"]
[ext_resource type="Script" path="res://galaxy/star_system/star_system.gd" id="1_psxkv"]
[ext_resource type="Script" path="res://mechanics/economy/market.gd" id="2_nldec"]
[ext_resource type="Resource" uid="uid://bnw61s2hj8a0m" path="res://mechanics/economy/commodities/water.tres" id="2_tsdy1"]
[ext_resource type="Resource" uid="uid://dl132ceubbcos" path="res://mechanics/economy/commodities/rare_earth_elements.tres" id="3_8a2sl"]
[ext_resource type="Resource" uid="uid://crj6o7sd5pos2" path="res://planet/planets/aethoria.tres" id="6_jhedg"]

[sub_resource type="Resource" id="Resource_6lhwe"]
script = ExtResource("2_nldec")
Expand All @@ -22,6 +23,7 @@ name = &"Zephyria"
connections = Array[StringName]([&"Alpha Centauri", &"Nova Lumina"])
position = Vector3(-2.7, 0.5, -3)
scene_path = "res://galaxy/star_system/scenes/zephyria.tscn"
planets = Array[Resource("res://planet/planet.gd")]([ExtResource("6_jhedg")])
market = SubResource("Resource_6lhwe")
refueling_money = ExtResource("1_gu0r8")
refueling_relative_price = 0.347
16 changes: 4 additions & 12 deletions mechanics/economy/bank_account.gd
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,12 @@ func withdraw_exactly(currency: Currency, amount: float, allow_negative: bool =

# Overridden because dictionaries of resources do not serialize correctly.
func save_to_dict() -> Dictionary:
var saved_currencies := {}
for currency: Currency in self.currencies:
saved_currencies[currency.resource_path] = self.currencies[currency]

return {
"currencies": saved_currencies,
}
var result := {}
result["currencies"] = SaveGame.serialize_dictionary_with_resource_keys(self.currencies)
return result

func load_from_dict(dict: Dictionary) -> void:
self.currencies.clear()

var saved_currencies: Dictionary = dict["currencies"]
for currency_path: String in saved_currencies:
var currency: Currency = ResourceUtils.safe_load_resource(currency_path, "tres")
self.currencies[currency] = saved_currencies[currency_path]
self.currencies = SaveGame.deserialize_dictionary_with_resource_keys(saved_currencies)

self.emit_changed()
12 changes: 2 additions & 10 deletions mechanics/economy/cargo_hold.gd
Original file line number Diff line number Diff line change
Expand Up @@ -97,21 +97,13 @@ func remove_exactly(commodity: Commodity, amount: int) -> bool:
func save_to_dict() -> Dictionary:
var result := {}
result["max_volume"] = self.max_volume

var saved_commodities := {}
for commodity: Commodity in self.commodities:
saved_commodities[commodity.resource_path] = self.commodities[commodity]

result["commodities"] = saved_commodities
result["commodities"] = SaveGame.serialize_dictionary_with_resource_keys(self.commodities)
return result

func load_from_dict(dict: Dictionary) -> void:
self.max_volume = dict["max_volume"]
self.commodities.clear()

var saved_commodities: Dictionary = dict["commodities"]
for commodity_path: String in saved_commodities:
var commodity: Commodity = ResourceUtils.safe_load_resource(commodity_path, "tres")
self.commodities[commodity] = saved_commodities[commodity_path]
self.commodities = SaveGame.deserialize_dictionary_with_resource_keys(saved_commodities)

self.emit_changed()
10 changes: 10 additions & 0 deletions mechanics/economy/commodities/specials/diplomatic_parcels.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Commodity" load_steps=2 format=3 uid="uid://cqhr7ier7ncx7"]

[ext_resource type="Script" path="res://mechanics/economy/commodity.gd" id="1_fk470"]

[resource]
script = ExtResource("1_fk470")
mass = 1.0
volume = 1.0
base_price_in_credits = 1000.0
name = "Diplomatic Parcels"
10 changes: 10 additions & 0 deletions mechanics/economy/commodities/specials/technology_prototypes.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Commodity" load_steps=2 format=3 uid="uid://belatvs1ea3lm"]

[ext_resource type="Script" path="res://mechanics/economy/commodity.gd" id="1_krgm1"]

[resource]
script = ExtResource("1_krgm1")
mass = 0.1
volume = 1.5
base_price_in_credits = 2000.0
name = "Technology Prototypes"
10 changes: 10 additions & 0 deletions mechanics/economy/commodities/specials/vip_passengers.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Commodity" load_steps=2 format=3 uid="uid://ccg6oqaxbii3l"]

[ext_resource type="Script" path="res://mechanics/economy/commodity.gd" id="1_bg7su"]

[resource]
script = ExtResource("1_bg7su")
mass = 0.07
volume = 1.0
base_price_in_credits = 1000.0
name = "VIP Passengers"
Loading

0 comments on commit d284070

Please sign in to comment.