Compare commits
No commits in common. "b00d3181d101b1ce621712cb5edc3200fb52b974" and "efac550b39726d84f1008f45b74bfee761dfb07d" have entirely different histories.
b00d3181d1
...
efac550b39
11 changed files with 161 additions and 3511 deletions
|
|
@ -6,12 +6,6 @@ class_name CurrencyMemberSprite
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
sync()
|
sync()
|
||||||
Economy.census.connect(census)
|
|
||||||
|
|
||||||
func census(p: Production, all):
|
|
||||||
if p.currency == currency:
|
|
||||||
p.amount += 1
|
|
||||||
all.append(self)
|
|
||||||
|
|
||||||
func sync():
|
func sync():
|
||||||
if allegiance != null:
|
if allegiance != null:
|
||||||
|
|
|
||||||
37
economy.gd
37
economy.gd
|
|
@ -8,8 +8,7 @@ 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)
|
||||||
signal census(p: Production, all)
|
|
||||||
|
|
||||||
@onready var events: Array[Event] = load_events()
|
@onready var events: Array[Event] = load_events()
|
||||||
|
|
||||||
|
|
@ -21,43 +20,20 @@ func spawn_friendlies():
|
||||||
var p := Production.new()
|
var p := Production.new()
|
||||||
p.currency = currency
|
p.currency = currency
|
||||||
p.amount = 0
|
p.amount = 0
|
||||||
var all: Array[Node2D] = []
|
census.emit(p)
|
||||||
census.emit(p, [])
|
var delta := p.amount - get_currency_amount(currency)
|
||||||
var delta := get_currency_amount(currency) - p.amount
|
|
||||||
if delta > 0:
|
if delta > 0:
|
||||||
for i in range(delta):
|
for i in range(delta):
|
||||||
spawn_currency_avatar(currency, true)
|
spawn_currency_avatar(currency)
|
||||||
elif delta < 0:
|
|
||||||
all.shuffle()
|
|
||||||
for i in range(min(delta, all.size()-1)):
|
|
||||||
all[i].queue_free()
|
|
||||||
|
|
||||||
func spawn_baddies():
|
func spawn_currency_avatar(currency):
|
||||||
if GameState.spawns_good == null:
|
|
||||||
spawn_friendlies.call_deferred()
|
|
||||||
return
|
|
||||||
for currency in get_all_sentient_currencies():
|
|
||||||
var delta := get_currency_amount(currency)
|
|
||||||
for i in range(delta):
|
|
||||||
spawn_currency_avatar(currency, false)
|
|
||||||
|
|
||||||
func spawn_currency_avatar(currency, good: bool):
|
|
||||||
var troup := preload("res://Troup.tscn").instantiate()
|
var troup := preload("res://Troup.tscn").instantiate()
|
||||||
var spawns
|
var spawn: Node2D = GameState.spawns_good.get_children().pick_random()
|
||||||
if good:
|
|
||||||
spawns = GameState.spawns_good
|
|
||||||
else:
|
|
||||||
spawns = GameState.spawns_bad
|
|
||||||
var spawn: Node2D = spawns.get_children().pick_random()
|
|
||||||
troup.top_level = true
|
troup.top_level = true
|
||||||
troup.position = spawn.global_position
|
troup.position = spawn.global_position
|
||||||
var sprite: CurrencyMemberSprite = troup.sprite()
|
var sprite: CurrencyMemberSprite = troup.sprite()
|
||||||
sprite.currency = currency
|
sprite.currency = currency
|
||||||
if good:
|
|
||||||
sprite.allegiance = preload("res://allegiance/good.tres")
|
sprite.allegiance = preload("res://allegiance/good.tres")
|
||||||
else:
|
|
||||||
sprite.allegiance = preload("res://allegiance/bad.tres")
|
|
||||||
|
|
||||||
get_tree().root.add_child(troup)
|
get_tree().root.add_child(troup)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -147,7 +123,6 @@ func simulate():
|
||||||
GameState.add_letter.emit(e.into_letter())
|
GameState.add_letter.emit(e.into_letter())
|
||||||
if randf() < 0.01:
|
if randf() < 0.01:
|
||||||
LetterGeneration.try_generate_offer()
|
LetterGeneration.try_generate_offer()
|
||||||
spawn_friendlies()
|
|
||||||
|
|
||||||
|
|
||||||
func get_all_currencies_in(dir: StringName):
|
func get_all_currencies_in(dir: StringName):
|
||||||
|
|
|
||||||
7
game.gd
7
game.gd
|
|
@ -1,7 +0,0 @@
|
||||||
extends Node2D
|
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
|
||||||
Economy.spawn_baddies.call_deferred()
|
|
||||||
Economy.simulate.call_deferred()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
uid://cr1yh02xdul33
|
|
||||||
13
game.tscn
13
game.tscn
|
|
@ -1,14 +1,23 @@
|
||||||
[gd_scene format=3 uid="uid://dkui3dlb4vu1c"]
|
[gd_scene format=3 uid="uid://dkui3dlb4vu1c"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bdk1r2u8clllr" path="res://map.tscn" id="1_e2o6t"]
|
[ext_resource type="PackedScene" uid="uid://bdk1r2u8clllr" path="res://map.tscn" id="1_e2o6t"]
|
||||||
[ext_resource type="Script" uid="uid://cr1yh02xdul33" path="res://game.gd" id="1_feb5d"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://d06w1wtct0mfs" path="res://test/test_economy.tscn" id="2_feb5d"]
|
[ext_resource type="PackedScene" uid="uid://d06w1wtct0mfs" path="res://test/test_economy.tscn" id="2_feb5d"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://coebykrbnhlif" path="res://currency/members/MemberSprite.tscn" id="3_7jktm"]
|
||||||
|
[ext_resource type="Resource" uid="uid://dn0c1pfq04obw" path="res://currency/sentient/farmer.tres" id="4_ryrav"]
|
||||||
|
[ext_resource type="Resource" uid="uid://b7lxfjhx4qhts" path="res://allegiance/good.tres" id="5_eow3j"]
|
||||||
|
|
||||||
[node name="Game" type="Node2D" unique_id=1791439508]
|
[node name="Game" type="Node2D" unique_id=1791439508]
|
||||||
script = ExtResource("1_feb5d")
|
|
||||||
|
|
||||||
[node name="map" parent="." unique_id=575553336 instance=ExtResource("1_e2o6t")]
|
[node name="map" parent="." unique_id=575553336 instance=ExtResource("1_e2o6t")]
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1213874033]
|
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1213874033]
|
||||||
|
|
||||||
[node name="TestEconomy" parent="CanvasLayer" unique_id=629898212 instance=ExtResource("2_feb5d")]
|
[node name="TestEconomy" parent="CanvasLayer" unique_id=629898212 instance=ExtResource("2_feb5d")]
|
||||||
|
|
||||||
|
[node name="MemberSprite" parent="." unique_id=283117283 instance=ExtResource("3_7jktm")]
|
||||||
|
offset_left = 294.0
|
||||||
|
offset_top = 1177.0
|
||||||
|
offset_right = 345.0
|
||||||
|
offset_bottom = 1219.0
|
||||||
|
currency = ExtResource("4_ryrav")
|
||||||
|
allegiance = ExtResource("5_eow3j")
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
run/main_scene="uid://d1hx10534r452"
|
run/main_scene="uid://dkui3dlb4vu1c"
|
||||||
config/features=PackedStringArray("4.7")
|
config/features=PackedStringArray("4.7")
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,8 @@ extends Node2D
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
GameState.spawns_bad = self
|
GameState.spawns_bad = self
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,8 @@ extends Node2D
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
GameState.spawns_good = self
|
GameState.spawns_good = self
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ extends Control
|
||||||
func _on_button_pressed() -> void:
|
func _on_button_pressed() -> void:
|
||||||
Dialogic.start(preload("res://test/timeline.dtl"))
|
Dialogic.start(preload("res://test/timeline.dtl"))
|
||||||
await Dialogic.timeline_ended
|
await Dialogic.timeline_ended
|
||||||
get_tree().change_scene_to_file.call_deferred("res://game.tscn")
|
get_tree().change_scene_to_file("res://game.tscn")
|
||||||
|
|
||||||
|
|
||||||
func _on_button_2_pressed() -> void:
|
func _on_button_2_pressed() -> void:
|
||||||
get_tree().change_scene_to_file.call_deferred("res://game.tscn")
|
get_tree().change_scene_to_file("res://game.tscn")
|
||||||
|
|
|
||||||
2
troup.gd
2
troup.gd
|
|
@ -9,7 +9,7 @@ const JUMP_VELOCITY = -400.0
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|
||||||
UserContext. set_target_for . connect(set_target_for)
|
UserContext. set_target_for . connect(set_target_for)
|
||||||
#enemTarget = %PlayerGates
|
enemTarget = %PlayerGates
|
||||||
|
|
||||||
func set_target_for(who: CurrencyMemberSprite, t: Node2D):
|
func set_target_for(who: CurrencyMemberSprite, t: Node2D):
|
||||||
if %MemberSprite == who:
|
if %MemberSprite == who:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue