This commit is contained in:
Spencer Killen 2026-09-26 15:39:49 -06:00
parent 9d04ee2d21
commit fd91a1aa4a
Signed by: sjkillen
GPG key ID: 1DAA9D8D7C6ADD05
12 changed files with 77 additions and 8 deletions

View file

@ -4,3 +4,4 @@ class_name Currency
@export var name: String
@export var production: Array[Production]
@export_multiline var description = "no description of currency"
@export var thumbnail: Texture2D

View file

@ -49,6 +49,21 @@ func simulate():
pp.currency = p.currency
pp.amount = c.amount * p.amount
produce(pp)
func get_all_currencies_in(dir: StringName):
var reses := ResourceLoader.list_directory(dir)
var resources := []
for res in reses:
if res.ends_with(".tres"):
resources.append(load(res))
return resources
func get_all_sentient_currencies() -> Array:
return get_all_currencies_in("res://currency/sentient")
func get_all_inanimate_currencies() -> Array:
return get_all_currencies_in("res://currency/inanimate")
func _ready() -> void:
simulate()

23
letter_generation.gd Normal file
View file

@ -0,0 +1,23 @@
extends Node
var OFFERS = [preload("res://letters/ask_solo.tres"), preload("res://letters/counteroffer.tres"), preload("res://letters/life_expense.tres"), preload("res://letters/union_rep_ask.tres")]
func generate_offer():
var offer: Counteroffer = OFFERS.pick_random()
var currency: Production = Economy.currencies.pick_random()
var amount = max(randi_range(1, 10), currency.amount)
var request = Production.new()
request.currency = currency.currency
request.amount = amount
offer.request = request
offer.subject_field = "Need " + currency.currency.name
var source: Currency = Economy.get_all_sentient_currencies().pick_random()
#if source == null:
offer.source = source
GameState.add_letter.emit(offer)

1
letter_generation.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cwoun1b8wiugd

6
letter_generation.tscn Normal file
View file

@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://d156m2y8b38qs"]
[ext_resource type="Script" uid="uid://cwoun1b8wiugd" path="res://letter_generation.gd" id="1_borkp"]
[node name="LetterGeneration" type="Node" unique_id=1999579291]
script = ExtResource("1_borkp")

9
letters/ask_solo.tres Normal file
View file

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="Counteroffer" format=3 uid="uid://dgcbmua6pnmaq"]
[ext_resource type="Script" uid="uid://c47ee6kd2x6oi" path="res://letters/counteroffer.gd" id="1_j2fip"]
[ext_resource type="Resource" uid="uid://bcl8oqdj8etpv" path="res://test/asking for currency solo.dtl" id="2_j2fip"]
[resource]
script = ExtResource("1_j2fip")
timeline = ExtResource("2_j2fip")
metadata/_custom_type_script = "uid://cadv11m8ohoxe"

View file

@ -1,4 +1,5 @@
extends Letter
class_name Counteroffer
@export var request: Production

View file

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="Counteroffer" format=3 uid="uid://bmpmg4myddeva"]
[ext_resource type="Script" uid="uid://c47ee6kd2x6oi" path="res://letters/counteroffer.gd" id="1_ugo5r"]
[ext_resource type="Resource" uid="uid://cle5jk1fytta7" path="res://test/union reps letters.dtl" id="2_mwc65"]
[resource]
script = ExtResource("1_ugo5r")
timeline = ExtResource("2_mwc65")
metadata/_custom_type_script = "uid://cadv11m8ohoxe"

View file

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="Counteroffer" format=3 uid="uid://btosuw7pgeeeu"]
[ext_resource type="Script" uid="uid://c47ee6kd2x6oi" path="res://letters/counteroffer.gd" id="1_habxl"]
[ext_resource type="Resource" uid="uid://bx6cdpadiu4c" path="res://test/random life expense letter.dtl" id="2_habxl"]
[resource]
script = ExtResource("1_habxl")
timeline = ExtResource("2_habxl")
metadata/_custom_type_script = "uid://cadv11m8ohoxe"

View file

@ -20,6 +20,7 @@ Economy="*uid://dnpioqaes87yb"
Random="*uid://cu3n7igqstbxi"
UserContext="*uid://0a08ucta58lp"
GameState="*uid://bohql2ihaumsa"
LetterGeneration="*uid://d156m2y8b38qs"
[dialogic]

View file

@ -18,4 +18,4 @@ elif {RNG_1_4} == 3.0:
else:
"Me. Re quest -- current see\
{for_timeline_calls.requested_amount} this much of {for_timeline_calls.requested_currency}"
"\if not I kill my loyaly to you"
"\if not I kill my loyalty to you"

View file

@ -13,10 +13,4 @@ func _on_run_simulate_pressed() -> void:
func _on_open_inbox_pressed() -> void:
UserContext.open_inbox.emit()
var letter := preload("res://letters/counteroffer.tres").duplicate()
letter.request = Production.new()
letter.request.currency = preload("res://currency/inanimate/beer.tres")
letter.request.amount = 10
letter.source = preload("res://currency/sentient/drunk.tres")
GameState.add_letter.emit(letter)
LetterGeneration.generate_offer()