.
This commit is contained in:
parent
1301335d31
commit
d43494753a
11 changed files with 3487 additions and 137 deletions
|
|
@ -6,6 +6,12 @@ class_name CurrencyMemberSprite
|
|||
|
||||
func _ready() -> void:
|
||||
sync()
|
||||
Economy.census.connect(census)
|
||||
|
||||
func census(p: Production, all):
|
||||
if p.currency == currency:
|
||||
p.amount += 1
|
||||
all.append(self)
|
||||
|
||||
func sync():
|
||||
if allegiance != null:
|
||||
|
|
|
|||
37
economy.gd
37
economy.gd
|
|
@ -8,7 +8,8 @@ signal log(s: String)
|
|||
@export var currencies: Array[Production]
|
||||
@export var members: Array
|
||||
|
||||
signal census(p: Production)
|
||||
|
||||
signal census(p: Production, all)
|
||||
|
||||
@onready var events: Array[Event] = load_events()
|
||||
|
||||
|
|
@ -20,20 +21,43 @@ func spawn_friendlies():
|
|||
var p := Production.new()
|
||||
p.currency = currency
|
||||
p.amount = 0
|
||||
census.emit(p)
|
||||
var delta := p.amount - get_currency_amount(currency)
|
||||
var all: Array[Node2D] = []
|
||||
census.emit(p, [])
|
||||
var delta := get_currency_amount(currency) - p.amount
|
||||
if delta > 0:
|
||||
for i in range(delta):
|
||||
spawn_currency_avatar(currency)
|
||||
spawn_currency_avatar(currency, true)
|
||||
elif delta < 0:
|
||||
all.shuffle()
|
||||
for i in range(min(delta, all.size()-1)):
|
||||
all[i].queue_free()
|
||||
|
||||
func spawn_currency_avatar(currency):
|
||||
func spawn_baddies():
|
||||
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 spawn: Node2D = GameState.spawns_good.get_children().pick_random()
|
||||
var spawns
|
||||
if good:
|
||||
spawns = GameState.spawns_good
|
||||
else:
|
||||
spawns = GameState.spawns_bad
|
||||
var spawn: Node2D = spawns.get_children().pick_random()
|
||||
troup.top_level = true
|
||||
troup.position = spawn.global_position
|
||||
var sprite: CurrencyMemberSprite = troup.sprite()
|
||||
sprite.currency = currency
|
||||
if good:
|
||||
sprite.allegiance = preload("res://allegiance/good.tres")
|
||||
else:
|
||||
sprite.allegiance = preload("res://allegiance/bad.tres")
|
||||
|
||||
get_tree().root.add_child(troup)
|
||||
|
||||
|
||||
|
|
@ -123,6 +147,7 @@ func simulate():
|
|||
GameState.add_letter.emit(e.into_letter())
|
||||
if randf() < 0.01:
|
||||
LetterGeneration.try_generate_offer()
|
||||
spawn_friendlies()
|
||||
|
||||
|
||||
func get_all_currencies_in(dir: StringName):
|
||||
|
|
|
|||
7
game.gd
Normal file
7
game.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
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
game.gd.uid
Normal file
1
game.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cr1yh02xdul33
|
||||
13
game.tscn
13
game.tscn
|
|
@ -1,23 +1,14 @@
|
|||
[gd_scene format=3 uid="uid://dkui3dlb4vu1c"]
|
||||
|
||||
[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://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]
|
||||
script = ExtResource("1_feb5d")
|
||||
|
||||
[node name="map" parent="." unique_id=575553336 instance=ExtResource("1_e2o6t")]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1213874033]
|
||||
|
||||
[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]
|
||||
|
||||
run/main_scene="uid://dkui3dlb4vu1c"
|
||||
run/main_scene="uid://d1hx10534r452"
|
||||
config/features=PackedStringArray("4.7")
|
||||
|
||||
[autoload]
|
||||
|
|
|
|||
|
|
@ -4,8 +4,3 @@ 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
|
||||
|
|
|
|||
|
|
@ -4,8 +4,3 @@ 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
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ extends Control
|
|||
func _on_button_pressed() -> void:
|
||||
Dialogic.start(preload("res://test/timeline.dtl"))
|
||||
await Dialogic.timeline_ended
|
||||
get_tree().change_scene_to_file("res://game.tscn")
|
||||
get_tree().change_scene_to_file.call_deferred("res://game.tscn")
|
||||
|
||||
|
||||
func _on_button_2_pressed() -> void:
|
||||
get_tree().change_scene_to_file("res://game.tscn")
|
||||
get_tree().change_scene_to_file.call_deferred("res://game.tscn")
|
||||
|
|
|
|||
2
troup.gd
2
troup.gd
|
|
@ -9,7 +9,7 @@ const JUMP_VELOCITY = -400.0
|
|||
func _ready() -> void:
|
||||
|
||||
UserContext. set_target_for . connect(set_target_for)
|
||||
enemTarget = %PlayerGates
|
||||
#enemTarget = %PlayerGates
|
||||
|
||||
func set_target_for(who: CurrencyMemberSprite, t: Node2D):
|
||||
if %MemberSprite == who:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue