.
This commit is contained in:
parent
dea8937d65
commit
bf9a4926f0
9 changed files with 1411 additions and 0 deletions
25
economy.gd
25
economy.gd
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
3
spawner.tscn
Normal file
3
spawner.tscn
Normal 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
11
spawns_bad.gd
Normal 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
1
spawns_bad.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cqr8x6e2fjta1
|
||||||
11
spawns_good.gd
Normal file
11
spawns_good.gd
Normal 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
1
spawns_good.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cafd3hd3kkkga
|
||||||
3
troup.gd
3
troup.gd
|
|
@ -20,6 +20,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()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue