Compare commits

..

3 commits

10 changed files with 83 additions and 6 deletions

View file

@ -9,6 +9,8 @@
[ext_resource type="Resource" uid="uid://dfj4jwdmff6bu" path="res://currency/sentient/spy.tres" id="4_bufop"] [ext_resource type="Resource" uid="uid://dfj4jwdmff6bu" path="res://currency/sentient/spy.tres" id="4_bufop"]
[ext_resource type="Resource" uid="uid://dmctedq3pav0t" path="res://currency/inanimate/corpse.tres" id="5_w8bqw"] [ext_resource type="Resource" uid="uid://dmctedq3pav0t" path="res://currency/inanimate/corpse.tres" id="5_w8bqw"]
[ext_resource type="Resource" uid="uid://dsohovjbf3s2p" path="res://currency/sentient/chicken.tres" id="6_eu6eo"] [ext_resource type="Resource" uid="uid://dsohovjbf3s2p" path="res://currency/sentient/chicken.tres" id="6_eu6eo"]
[ext_resource type="Resource" uid="uid://rdrcyvuvrp2m" path="res://currency/sentient/pig.tres" id="7_3kirj"]
[ext_resource type="Resource" uid="uid://b5qok0rcalr" path="res://currency/sentient/cow.tres" id="8_8ofsn"]
[ext_resource type="Resource" uid="uid://dpaj2dk3qm7ow" path="res://currency/sentient/miner.tres" id="9_2oxvv"] [ext_resource type="Resource" uid="uid://dpaj2dk3qm7ow" path="res://currency/sentient/miner.tres" id="9_2oxvv"]
[ext_resource type="Resource" uid="uid://dn0c1pfq04obw" path="res://currency/sentient/farmer.tres" id="10_5ek7i"] [ext_resource type="Resource" uid="uid://dn0c1pfq04obw" path="res://currency/sentient/farmer.tres" id="10_5ek7i"]
[ext_resource type="Resource" uid="uid://l8osuuxl7exe" path="res://currency/sentient/archer.tres" id="11_ihb7i"] [ext_resource type="Resource" uid="uid://l8osuuxl7exe" path="res://currency/sentient/archer.tres" id="11_ihb7i"]
@ -17,6 +19,7 @@
[ext_resource type="Resource" uid="uid://dlxnbyiurne1s" path="res://currency/sentient/calvary.tres" id="14_ibwxy"] [ext_resource type="Resource" uid="uid://dlxnbyiurne1s" path="res://currency/sentient/calvary.tres" id="14_ibwxy"]
[ext_resource type="Resource" uid="uid://dk3wsnr3ku7ka" path="res://currency/sentient/royalty.tres" id="15_etlyf"] [ext_resource type="Resource" uid="uid://dk3wsnr3ku7ka" path="res://currency/sentient/royalty.tres" id="15_etlyf"]
[ext_resource type="Resource" uid="uid://sq2lrgnfjugj" path="res://currency/sentient/mercenary.tres" id="16_dv7gf"] [ext_resource type="Resource" uid="uid://sq2lrgnfjugj" path="res://currency/sentient/mercenary.tres" id="16_dv7gf"]
[ext_resource type="Resource" uid="uid://dq70tpr5osjkk" path="res://currency/sentient/messenger.tres" id="17_u1apl"]
[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="18_iltdy"] [ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="18_iltdy"]
[ext_resource type="Resource" uid="uid://cwpk5e2exbgcr" path="res://currency/sentient/kings_guard.tres" id="19_30pip"] [ext_resource type="Resource" uid="uid://cwpk5e2exbgcr" path="res://currency/sentient/kings_guard.tres" id="19_30pip"]
@ -35,7 +38,7 @@ metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_jihtj"] [sub_resource type="Resource" id="Resource_jihtj"]
script = ExtResource("1_qayfp") script = ExtResource("1_qayfp")
currency = ExtResource("5_w8bqw") currency = ExtResource("5_w8bqw")
amount = 4 amount = 20
metadata/_custom_type_script = "uid://dddyxbkq0ienn" metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_utj6b"] [sub_resource type="Resource" id="Resource_utj6b"]
@ -44,6 +47,18 @@ currency = ExtResource("6_eu6eo")
amount = 10 amount = 10
metadata/_custom_type_script = "uid://dddyxbkq0ienn" metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_2b5sm"]
script = ExtResource("1_qayfp")
currency = ExtResource("7_3kirj")
amount = 10
metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_yq4u0"]
script = ExtResource("1_qayfp")
currency = ExtResource("8_8ofsn")
amount = 8
metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_hi66y"] [sub_resource type="Resource" id="Resource_hi66y"]
script = ExtResource("1_qayfp") script = ExtResource("1_qayfp")
currency = ExtResource("9_2oxvv") currency = ExtResource("9_2oxvv")
@ -92,6 +107,12 @@ currency = ExtResource("16_dv7gf")
amount = 2 amount = 2
metadata/_custom_type_script = "uid://dddyxbkq0ienn" metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_c6wya"]
script = ExtResource("1_qayfp")
currency = ExtResource("17_u1apl")
amount = 4
metadata/_custom_type_script = "uid://dddyxbkq0ienn"
[sub_resource type="Resource" id="Resource_c4cgt"] [sub_resource type="Resource" id="Resource_c4cgt"]
script = ExtResource("1_qayfp") script = ExtResource("1_qayfp")
currency = ExtResource("18_iltdy") currency = ExtResource("18_iltdy")
@ -110,7 +131,6 @@ name = "Dinosaur"
description = "*rawrs at you gayly and prehistorically*" description = "*rawrs at you gayly and prehistorically*"
thumbnail = ExtResource("3_bufop") thumbnail = ExtResource("3_bufop")
color = Color(1, 0.48235294, 0, 1) color = Color(1, 0.48235294, 0, 1)
wants = Array[ExtResource("1_qayfp")]([SubResource("Resource_unbv5"), SubResource("Resource_awlnm"), SubResource("Resource_jihtj"), SubResource("Resource_utj6b"), SubResource("Resource_2b5sm"), SubResource("Resource_yq4u0"), SubResource("Resource_hi66y"), SubResource("Resource_mf31s"), SubResource("Resource_gdovn"), SubResource("Resource_ts66k"), SubResource("Resource_gt1pn"), SubResource("Resource_evrxh"), SubResource("Resource_b1bj4"), SubResource("Resource_mjehd"), SubResource("Resource_c6wya"), SubResource("Resource_c4cgt"), SubResource("Resource_n7bnc")]) wants = Array[ExtResource("1_qayfp")]([SubResource("Resource_unbv5"), SubResource("Resource_awlnm"), SubResource("Resource_jihtj"), SubResource("Resource_utj6b"), SubResource("Resource_2b5sm"), SubResource("Resource_yq4u0"), SubResource("Resource_hi66y"), SubResource("Resource_mf31s"), SubResource("Resource_gdovn"), SubResource("Resource_ts66k"), SubResource("Resource_gt1pn"), SubResource("Resource_evrxh"), SubResource("Resource_b1bj4"), SubResource("Resource_mjehd"), SubResource("Resource_c6wya"), SubResource("Resource_c4cgt"), SubResource("Resource_n7bnc")])
soldier = true soldier = true
metadata/_custom_type_script = "uid://hcvynq5fjypj" metadata/_custom_type_script = "uid://hcvynq5fjypj"

View file

@ -8,9 +8,34 @@ signal log(s: String)
@export var currencies: Array[Production] @export var currencies: Array[Production]
@export var members: Array @export var members: Array
signal census(p: Production)
@onready var events: Array[Event] = load_events() @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]: func load_events() -> Array[Event]:
var dir := "res://random events" var dir := "res://random events"

View file

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

View file

@ -7,7 +7,6 @@
[ext_resource type="Resource" uid="uid://dlxnbyiurne1s" path="res://currency/sentient/calvary.tres" id="4_iw27f"] [ext_resource type="Resource" uid="uid://dlxnbyiurne1s" path="res://currency/sentient/calvary.tres" id="4_iw27f"]
[ext_resource type="Resource" uid="uid://b7lxfjhx4qhts" path="res://allegiance/good.tres" id="5_71pa8"] [ext_resource type="Resource" uid="uid://b7lxfjhx4qhts" path="res://allegiance/good.tres" id="5_71pa8"]
[ext_resource type="Resource" uid="uid://dn0c1pfq04obw" path="res://currency/sentient/farmer.tres" id="6_05x41"] [ext_resource type="Resource" uid="uid://dn0c1pfq04obw" path="res://currency/sentient/farmer.tres" id="6_05x41"]
[ext_resource type="Resource" uid="uid://dv834343s36af" path="res://currency/sentient/drunk.tres" id="6_gqbix"]
[ext_resource type="Resource" uid="uid://clx8tbrad4m7c" path="res://currency/sentient/dinosaur.tres" id="9_sb2pt"] [ext_resource type="Resource" uid="uid://clx8tbrad4m7c" path="res://currency/sentient/dinosaur.tres" id="9_sb2pt"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhunq"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_bhunq"]
@ -68,13 +67,13 @@ script = ExtResource("2_wijl4")
[node name="PlayerGates" type="Area2D" parent="." unique_id=1387700911] [node name="PlayerGates" type="Area2D" parent="." unique_id=1387700911]
unique_name_in_owner = true unique_name_in_owner = true
position = Vector2(968, 1498)
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerGates" unique_id=880212519] [node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerGates" unique_id=880212519]
position = Vector2(-1, -23) position = Vector2(967, 1469)
shape = SubResource("RectangleShape2D_bhunq") shape = SubResource("RectangleShape2D_bhunq")
[node name="EnemyGates" type="Area2D" parent="." unique_id=92129502] [node name="EnemyGates" type="Area2D" parent="." unique_id=92129502]
unique_name_in_owner = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyGates" unique_id=993616373] [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyGates" unique_id=993616373]
position = Vector2(966, -1524) position = Vector2(966, -1524)
@ -175,7 +174,7 @@ allegiance = ExtResource("5_71pa8")
position = Vector2(854, 34) position = Vector2(854, 34)
[node name="MemberSprite" parent="CharacterBody2D2" index="1" unique_id=283117283] [node name="MemberSprite" parent="CharacterBody2D2" index="1" unique_id=283117283]
currency = ExtResource("6_gqbix") currency = ExtResource("4_iw27f")
allegiance = ExtResource("5_71pa8") allegiance = ExtResource("5_71pa8")
[node name="CharacterBody2D3" parent="." unique_id=1323337635 instance=ExtResource("3_e0an3")] [node name="CharacterBody2D3" parent="." unique_id=1323337635 instance=ExtResource("3_e0an3")]

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

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