From fe1a7efd37d08b166cbba92ae213633770084144 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sun, 27 Sep 2026 14:10:11 -0600 Subject: [PATCH 1/3] . --- CameraMove.gd | 2 ++ Troup.tscn | 5 +++-- currency/members/member_sprite.gd | 3 +++ currency/sentient/drunk.tres | 2 ++ map.tscn | 8 ++++---- troup.gd | 32 +++++++++++++++++++++++++------ user_context.gd | 7 ++++++- 7 files changed, 46 insertions(+), 13 deletions(-) diff --git a/CameraMove.gd b/CameraMove.gd index 808bc43..cb59b93 100644 --- a/CameraMove.gd +++ b/CameraMove.gd @@ -36,6 +36,8 @@ func _input(event): zoom.y = 1 else: zoom.y -= 1 + + diff --git a/Troup.tscn b/Troup.tscn index 0792db2..82d217a 100644 --- a/Troup.tscn +++ b/Troup.tscn @@ -6,13 +6,14 @@ [ext_resource type="Resource" uid="uid://dfbgxc6nlcjct" path="res://allegiance/bad.tres" id="4_sitmf"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_riqys"] -size = Vector2(98, 100) +size = Vector2(99, 97.67441) [node name="CharacterBody2D" type="CharacterBody2D" unique_id=1581641385] +scale = Vector2(0.215, 0.215) script = ExtResource("1_xfhet") [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1841709482] -position = Vector2(50, 49) +position = Vector2(50.500004, 48.837223) shape = SubResource("RectangleShape2D_riqys") [node name="MemberSprite" parent="." unique_id=283117283 instance=ExtResource("2_v0at3")] diff --git a/currency/members/member_sprite.gd b/currency/members/member_sprite.gd index 49413e1..2c3cd57 100644 --- a/currency/members/member_sprite.gd +++ b/currency/members/member_sprite.gd @@ -22,3 +22,6 @@ func _on_mouse_exited() -> void: func _input(event: InputEvent) -> void: if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT: UserContext.select_focused_member() + +func get_allegiance(): + return allegiance.kingdom_name diff --git a/currency/sentient/drunk.tres b/currency/sentient/drunk.tres index 0b1bea0..61ac68f 100644 --- a/currency/sentient/drunk.tres +++ b/currency/sentient/drunk.tres @@ -1,8 +1,10 @@ [gd_resource type="Resource" script_class="SentientCurrency" format=3 uid="uid://dv834343s36af"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="1_b07i1"] +[ext_resource type="Script" uid="uid://cn8rc6jyllrf0" path="res://command.gd" id="1_du6k0"] [ext_resource type="Resource" uid="uid://boshkhnywnk27" path="res://currency/production/human_production_shared_1.tres" id="2_0dvy8"] [ext_resource type="Script" uid="uid://hcvynq5fjypj" path="res://currency/sentient_currency.gd" id="2_j265y"] +[ext_resource type="Resource" uid="uid://u6lls6n0xw3n" path="res://commands/move_command.tres" id="2_tge1j"] [ext_resource type="Resource" uid="uid://mgb7y1r3eapq" path="res://currency/production/human_production_shared_2.tres" id="3_0dvy8"] [ext_resource type="Resource" uid="uid://crnhu4w6lfopb" path="res://currency/inanimate/beer.tres" id="5_a7r6n"] diff --git a/map.tscn b/map.tscn index 29e28b6..aafd3ff 100644 --- a/map.tscn +++ b/map.tscn @@ -170,14 +170,14 @@ currency = ExtResource("4_gqbix") allegiance = ExtResource("5_71pa8") [node name="CharacterBody2D2" parent="." unique_id=559452664 instance=ExtResource("3_e0an3")] -position = Vector2(628, 935) +position = Vector2(854, 34) [node name="MemberSprite" parent="CharacterBody2D2" index="1" unique_id=283117283] currency = ExtResource("4_iw27f") allegiance = ExtResource("5_71pa8") [node name="CharacterBody2D3" parent="." unique_id=1323337635 instance=ExtResource("3_e0an3")] -position = Vector2(1129, 814) +position = Vector2(905, 42) [node name="MemberSprite" parent="CharacterBody2D3" index="1" unique_id=283117283] allegiance = ExtResource("5_71pa8") @@ -242,13 +242,13 @@ position = Vector2(368, -1353) currency = ExtResource("6_05x41") [node name="CharacterBody2D12" parent="." unique_id=2114526449 instance=ExtResource("3_e0an3")] -position = Vector2(388, -1138) +position = Vector2(853, -17.999998) [node name="MemberSprite" parent="CharacterBody2D12" index="1" unique_id=283117283] currency = ExtResource("8_oysan") [node name="CharacterBody2D13" parent="." unique_id=799583982 instance=ExtResource("3_e0an3")] -position = Vector2(679, -1035) +position = Vector2(905.99994, -11.999985) [node name="MemberSprite" parent="CharacterBody2D13" index="1" unique_id=283117283] currency = ExtResource("4_iw27f") diff --git a/troup.gd b/troup.gd index 99fb3db..ce792c9 100644 --- a/troup.gd +++ b/troup.gd @@ -1,11 +1,12 @@ extends CharacterBody2D -const SPEED = 100.0 +const SPEED = 700.0 const JUMP_VELOCITY = -400.0 @export var target : Node2D func _ready() -> void: + UserContext. set_target_for . connect(set_target_for) func set_target_for(who: CurrencyMemberSprite, t: Node2D): @@ -19,23 +20,42 @@ func set_target_for(who: CurrencyMemberSprite, t: Node2D): func removed_target(): target = null +func combat(target): + var winner = randf_range(0,2) + print(winner) + if winner <= 1: + target.queue_free() + else: + var p := Production.new() + p.amount = -1 + p.currency = %MemberSprite.currency + Economy.produce(p) + + self.queue_free() #func _Direction() -> Vector2: #self.position = self.position.move_toward(target.transform.position, speed * delta) func _physics_process(delta: float) -> void: if target != null: - #print(self.global_position.distance_to(target.global_position)) + var num = abs(abs(self.global_position) - abs(target.global_position)) #print(num) var direction = (target.global_position - self.global_position).normalized() * SPEED * delta #if (num > Vector2(2,2)): - if (self.global_position.distance_to(target.global_position) > 0.2): + if (self.global_position.distance_to(target.global_position) > 25): self.velocity = direction #self.global_position = self.global_position.move_toward(target.global_position, SPEED * delta) - elif (target.is_class("SentientCurrency")): - pass + elif (target.is_class("CharacterBody2D")): + print("is SentientCurrency") + print(target.name) + print(target.get_node("MemberSprite").get_allegiance()) + if (target.get_node("MemberSprite").get_allegiance() != get_node("MemberSprite").get_allegiance() ): + #print("different Allegience: "+ target.get_node("CurrencyMemberSprite").alligence) + combat(target) + removed_target() else: - pass + print("Removed Target") + removed_target() #target = null move_and_slide() diff --git a/user_context.gd b/user_context.gd index 03c74d8..f0dfa4a 100644 --- a/user_context.gd +++ b/user_context.gd @@ -39,7 +39,12 @@ func select_focused_member(): selected_member.tree_exiting.connect(unselect_member) selected_member_change.emit(selected_member) UserContext.member_inspect.emit(selected_member) - + +func select_point(node : Node2D): + if modal_command is MoveCommand: + set_target_for.emit(selected_member, node) + + func unselect_member(): if selected_member == null: return From f2d3a371d37f5d102b0e5927b3c97181045978ac Mon Sep 17 00:00:00 2001 From: Jacob Date: Sun, 27 Sep 2026 14:36:17 -0600 Subject: [PATCH 2/3] . --- CameraMove.gd | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CameraMove.gd b/CameraMove.gd index 102890b..1778371 100644 --- a/CameraMove.gd +++ b/CameraMove.gd @@ -40,8 +40,11 @@ func _unhandled_input(event: InputEvent): zoom.y = 1 else: zoom.y -= 1 - - - - - + if UserContext.modal_command is MoveCommand and event.button_index == MOUSE_BUTTON_LEFT and UserContext.selected_member != null: + var loc = get_global_mouse_position() + var node := Node2D.new() + node.name = "targetNode" + node.top_level = true + node.position = loc + self.add_child(node) + UserContext.select_point(node) From 60a8bab179283e914f44bf8b67a5e8cd95abc8c1 Mon Sep 17 00:00:00 2001 From: Spencer Killen Date: Sun, 27 Sep 2026 14:50:00 -0600 Subject: [PATCH 3/3] . --- economy.gd | 6 ++++- event.gd | 1 + gui/production_ledger.gd | 13 +++++++++++ gui/production_log.gd | 43 ++++++++++++++++++++++------------- gui/production_log.tscn | 4 ++++ random events/a_pig_flew.tres | 1 + random events/bar_crawl.tres | 1 + random events/blood_rain.tres | 1 + random events/dino.tres | 1 + random events/drought.tres | 1 + 10 files changed, 55 insertions(+), 17 deletions(-) diff --git a/economy.gd b/economy.gd index 5232656..075095b 100644 --- a/economy.gd +++ b/economy.gd @@ -3,6 +3,7 @@ extends Node signal productions_update(p: Array[Production]) @warning_ignore("unused_signal") signal production_log(producer: Currency, p: Production) +signal log(s: String) @export var currencies: Array[Production] @export var members: Array @@ -78,12 +79,15 @@ func simulate(): update_currencies() for e in events: if e.requirements_satisfied() and e.will_happen(): + if e.log_message != "" and not e.skip_log: + Economy.log.emit(e.log_message) var outcome := e.outcome() for o in outcome: if o == null: continue produce(o) - production_log.emit(null, o) + if e.log_message == "" and not e.skip_log: + production_log.emit(null, o) if e.timeline != null: GameState.add_letter.emit(e.into_letter()) if randf() < 0.01: diff --git a/event.gd b/event.gd index 47d04c0..347d636 100644 --- a/event.gd +++ b/event.gd @@ -16,6 +16,7 @@ enum EventNature { @export var nature: EventNature = EventNature.Random @export var email_source: Currency = preload("res://currency/sentient/town_crier.tres") @export var email_subject: String = "Something is amok!" +@export var log_message: String = "" func requirements_satisfied() -> bool: for requirement in requirements: diff --git a/gui/production_ledger.gd b/gui/production_ledger.gd index 5c6bf50..0c0f192 100644 --- a/gui/production_ledger.gd +++ b/gui/production_ledger.gd @@ -5,6 +5,19 @@ extends VBoxContainer func _ready() -> void: Economy.production_log.connect(append) + Economy.log.connect(log) + +func log(s: String): + var display := preload("res://gui/production_log.tscn").instantiate() + display.set_color(new_message_color) + for child in get_children(): + if child is ProductionLog and child.is_old: + child.set_color(old_message_color) + display.generic = true + display.generic_text = s + add_child(display) + move_child(display, 0) + func append(producer: Currency, production: Production): var display := preload("res://gui/production_log.tscn").instantiate() diff --git a/gui/production_log.gd b/gui/production_log.gd index e9737ed..ffec435 100644 --- a/gui/production_log.gd +++ b/gui/production_log.gd @@ -3,27 +3,38 @@ class_name ProductionLog @export var producer: Currency = null @export var production: Production +@export var generic: bool = false +@export var generic_text: String = "" + var is_old: bool = false func _ready() -> void: - if producer != null: - %producer.text = producer.name - %Production.visible = true + if generic: + %GenericMessage.visible = true + %GenericMessage.text = generic_text + %Production.visible = false %Production2.visible = false else: - %Production.visible = false - %Production2.visible = true - %amount.text = str(abs(production.amount)) - %amount2.text = str(abs(production.amount)) - if production.amount > 0: - %type.text = "produced " - %producer2.text = "You gained " - else: - %type.text = "consumed " - %producer2.text = "You lost " - - %production.text = production.currency.name - %production2.text = production.currency.name + if producer != null: + %producer.text = producer.name + %GenericMessage.visible = false + %Production.visible = true + %Production2.visible = false + else: + %GenericMessage.visible = false + %Production.visible = false + %Production2.visible = true + %amount.text = str(abs(production.amount)) + %amount2.text = str(abs(production.amount)) + if production.amount > 0: + %type.text = "produced " + %producer2.text = "You gained " + else: + %type.text = "consumed " + %producer2.text = "You lost " + if production != null: + %production.text = production.currency.name + %production2.text = production.currency.name make_old.call_deferred() func make_old(): diff --git a/gui/production_log.tscn b/gui/production_log.tscn index 96500af..712acba 100644 --- a/gui/production_log.tscn +++ b/gui/production_log.tscn @@ -5,6 +5,10 @@ [node name="ProductionLog" type="MarginContainer" unique_id=253822540] script = ExtResource("1_ei3g1") +[node name="GenericMessage" type="Label" parent="." unique_id=712313778] +unique_name_in_owner = true +layout_mode = 2 + [node name="Production" type="HBoxContainer" parent="." unique_id=1073672077] unique_name_in_owner = true layout_mode = 2 diff --git a/random events/a_pig_flew.tres b/random events/a_pig_flew.tres index 564f117..9613926 100644 --- a/random events/a_pig_flew.tres +++ b/random events/a_pig_flew.tres @@ -1,6 +1,7 @@ [gd_resource type="Resource" script_class="Event" format=3 uid="uid://ddjairvlvswck"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="1_puqnt"] +[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="1_unbcn"] [ext_resource type="Resource" uid="uid://b5qok0rcalr" path="res://currency/sentient/cow.tres" id="2_tqpw4"] [ext_resource type="Resource" uid="uid://dsohovjbf3s2p" path="res://currency/sentient/chicken.tres" id="3_unbcn"] [ext_resource type="Resource" uid="uid://rdrcyvuvrp2m" path="res://currency/sentient/pig.tres" id="4_k6ytv"] diff --git a/random events/bar_crawl.tres b/random events/bar_crawl.tres index 85df42d..b43fe49 100644 --- a/random events/bar_crawl.tres +++ b/random events/bar_crawl.tres @@ -1,6 +1,7 @@ [gd_resource type="Resource" script_class="Event" format=3 uid="uid://s2n6eankt20p"] [ext_resource type="Resource" uid="uid://dv834343s36af" path="res://currency/sentient/drunk.tres" id="1_dvejf"] +[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="1_ilimp"] [ext_resource type="Script" uid="uid://diwdxofo6exg3" path="res://event.gd" id="1_qbpgq"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="2_iq8td"] [ext_resource type="Resource" uid="uid://bfc53d345i1h5" path="res://test/bar_crawl.dtl" id="4_iq8td"] diff --git a/random events/blood_rain.tres b/random events/blood_rain.tres index 247d312..e910dc8 100644 --- a/random events/blood_rain.tres +++ b/random events/blood_rain.tres @@ -2,6 +2,7 @@ [ext_resource type="Script" uid="uid://diwdxofo6exg3" path="res://event.gd" id="1_dxq8u"] [ext_resource type="Resource" uid="uid://by3dayfdpobpt" path="res://currency/inanimate/blood.tres" id="1_jlulm"] +[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="1_tqf2y"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="2_arfor"] [ext_resource type="Resource" uid="uid://ikwdxjpxukej" path="res://test/blood_rain.dtl" id="4_arfor"] diff --git a/random events/dino.tres b/random events/dino.tres index 9b37ce4..f912979 100644 --- a/random events/dino.tres +++ b/random events/dino.tres @@ -2,6 +2,7 @@ [ext_resource type="Resource" uid="uid://clx8tbrad4m7c" path="res://currency/sentient/dinosaur.tres" id="1_0jmdm"] [ext_resource type="Script" uid="uid://diwdxofo6exg3" path="res://event.gd" id="1_sui6i"] +[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="1_sy7r4"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="2_1x1ll"] [ext_resource type="Resource" uid="uid://25iq6i8ltb6v" path="res://test/dino.dtl" id="4_1x1ll"] diff --git a/random events/drought.tres b/random events/drought.tres index 298608d..31f638f 100644 --- a/random events/drought.tres +++ b/random events/drought.tres @@ -1,6 +1,7 @@ [gd_resource type="Resource" script_class="Event" format=3 uid="uid://vtlqhmhi0yeq"] [ext_resource type="Resource" uid="uid://b8b6yr444ecdk" path="res://currency/inanimate/water.tres" id="1_d7ltk"] +[ext_resource type="Resource" uid="uid://chsv8oeajty8j" path="res://currency/sentient/town_crier.tres" id="1_unbv5"] [ext_resource type="Script" uid="uid://diwdxofo6exg3" path="res://event.gd" id="1_ut0k2"] [ext_resource type="Script" uid="uid://dddyxbkq0ienn" path="res://currency/production.gd" id="2_rh8yf"] [ext_resource type="Resource" uid="uid://damk3l2oj6gkd" path="res://test/drought.dtl" id="4_rh8yf"]