This commit is contained in:
Spencer Killen 2026-09-27 16:02:02 -06:00
parent dea8937d65
commit bf9a4926f0
Signed by: sjkillen
GPG key ID: 1DAA9D8D7C6ADD05
9 changed files with 1411 additions and 0 deletions

View file

@ -8,9 +8,34 @@ signal log(s: String)
@export var currencies: Array[Production]
@export var members: Array
signal census(p: Production)
@onready var events: Array[Event] = load_events()
func spawn_friendlies():
if GameState.spawns_good == null:
spawn_friendlies.call_deferred()
return
for currency in get_all_sentient_currencies():
var p := Production.new()
p.currency = currency
p.amount = 0
census.emit(p)
var delta := p.amount - get_currency_amount(currency)
if delta > 0:
for i in range(delta):
spawn_currency_avatar(currency)
func spawn_currency_avatar(currency):
var troup := preload("res://Troup.tscn").instantiate()
var spawn: Node2D = GameState.spawns_good.get_children().pick_random()
troup.top_level = true
troup.position = spawn.global_position
var sprite: CurrencyMemberSprite = troup.sprite()
sprite.currency = currency
sprite.allegiance = preload("res://allegiance/good.tres")
get_tree().root.add_child(troup)
func load_events() -> Array[Event]:
var dir := "res://random events"

View file

@ -4,6 +4,9 @@ var letters: Array[Letter]
signal add_letter(l: Letter)
signal remove_letter(l: Letter)
var spawns_good: Node2D
var spawns_bad: Node2D
func _ready() -> void:
add_letter.connect(on_add_letter)
remove_letter.connect(on_remove_letter)

1353
map.tscn

File diff suppressed because it is too large Load diff

3
spawner.tscn Normal file
View file

@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://dmp1bqj8y0nvm"]
[node name="spawner" type="Node2D" unique_id=1699105937]

11
spawns_bad.gd Normal file
View file

@ -0,0 +1,11 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
GameState.spawns_bad = self
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

1
spawns_bad.gd.uid Normal file
View file

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

11
spawns_good.gd Normal file
View file

@ -0,0 +1,11 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
GameState.spawns_good = self
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

1
spawns_good.gd.uid Normal file
View file

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

View file

@ -20,6 +20,9 @@ func set_target_for(who: CurrencyMemberSprite, t: Node2D):
func removed_target():
target = null
func sprite() -> CurrencyMemberSprite:
return %MemberSprite
func combat(target):
if get_node("MemberSprite").get_combat() == false:
var p := Production.new()