From 4022a1c2203775f1d9a300612e41ab4d19baee71 Mon Sep 17 00:00:00 2001 From: VinPropane Date: Wed, 17 Jun 2026 21:31:09 -0400 Subject: [PATCH] NEO-142: satisfy pre-push gdlint for faction HUD wiring Wrap faction standing HUD deps in a setup dictionary to stay under the function-argument limit, shorten the faction client doc comment for max line length, and add a GdUnit test for setup wiring. --- client/scripts/faction_standing_client.gd | 3 +- client/scripts/main.gd | 3 +- client/scripts/quest_hud_controller.gd | 19 +++------- client/test/faction_standing_hud_test.gd | 46 ++++++++++++++++++++++- 4 files changed, 53 insertions(+), 18 deletions(-) diff --git a/client/scripts/faction_standing_client.gd b/client/scripts/faction_standing_client.gd index 17fc7d5..6163ffb 100644 --- a/client/scripts/faction_standing_client.gd +++ b/client/scripts/faction_standing_client.gd @@ -1,6 +1,7 @@ extends Node -## NEO-142: prototype HTTP client for [code]GET /game/players/{id}/faction-standing[/code] (NEO-139). +## NEO-142: prototype HTTP client for faction-standing GET (NEO-139). +## Route: [code]GET /game/players/{id}/faction-standing[/code]. signal faction_standing_received(snapshot: Dictionary) signal faction_standing_sync_failed(reason: String) diff --git a/client/scripts/main.gd b/client/scripts/main.gd index ccf7232..3b95e65 100644 --- a/client/scripts/main.gd +++ b/client/scripts/main.gd @@ -870,8 +870,7 @@ func _setup_quest_progress_sync() -> void: _item_defs_client, _inventory_client, _skill_progression_client, - _faction_standing_client, - _faction_standing_label + {"client": _faction_standing_client, "label": _faction_standing_label} ) diff --git a/client/scripts/quest_hud_controller.gd b/client/scripts/quest_hud_controller.gd index cffb00e..ec96009 100644 --- a/client/scripts/quest_hud_controller.gd +++ b/client/scripts/quest_hud_controller.gd @@ -48,16 +48,15 @@ func setup( item_defs_client: Node = null, inventory_client: Node = null, skill_progression_client: Node = null, - faction_standing_client: Node = null, - faction_standing_label: Label = null + faction_standing_hud: Dictionary = {} ) -> void: _progress_client = progress_client _defs_client = defs_client _item_defs_client = item_defs_client _inventory_client = inventory_client _skill_progression_client = skill_progression_client - _faction_standing_client = faction_standing_client - _faction_standing_label = faction_standing_label + _faction_standing_client = faction_standing_hud.get("client") + _faction_standing_label = faction_standing_hud.get("label") _progress_label = progress_label _accept_label = accept_label _reward_label = reward_label @@ -283,21 +282,15 @@ func _render_faction_standing_label() -> void: func _format_faction_gate_blocked_deny(quest_id: String) -> String: var rules: Array = _faction_gate_rules_for(quest_id) if rules.is_empty(): - return ( - "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON - ) + return "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON var first_rule: Variant = rules[0] if not first_rule is Dictionary: - return ( - "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON - ) + return "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON var rule: Dictionary = first_rule var faction_id := str(rule.get("factionId", "")).strip_edges() var min_standing: int = int(rule.get("minStanding", 0)) if faction_id.is_empty(): - return ( - "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON - ) + return "Quest accept: denied — faction standing too low (%s)" % FACTION_GATE_BLOCKED_REASON var faction_label := _faction_display_name(faction_id) var current_standing: int = FactionStandingClient.standing_for( faction_id, _last_faction_snapshot diff --git a/client/test/faction_standing_hud_test.gd b/client/test/faction_standing_hud_test.gd index 5af365d..b185634 100644 --- a/client/test/faction_standing_hud_test.gd +++ b/client/test/faction_standing_hud_test.gd @@ -111,7 +111,8 @@ func test_faction_gate_blocked_deny_uses_readable_gate_copy() -> void: controller.set("_defs_client", defs_client) controller.set("_accept_label", accept_label) controller.call( - "_on_faction_standing_received", {"schemaVersion": 1, "playerId": "dev-local-1", "factions": []} + "_on_faction_standing_received", + {"schemaVersion": 1, "playerId": "dev-local-1", "factions": []} ) # Act var deny_text: String = str( @@ -156,7 +157,8 @@ func test_accept_result_received_paints_readable_faction_gate_blocked() -> void: controller.set("_accept_label", accept_label) controller.set("_progress_client", progress_client) controller.call( - "_on_faction_standing_received", {"schemaVersion": 1, "playerId": "dev-local-1", "factions": []} + "_on_faction_standing_received", + {"schemaVersion": 1, "playerId": "dev-local-1", "factions": []} ) # Act controller.call( @@ -216,3 +218,43 @@ func test_completion_transition_requests_faction_standing_refresh() -> void: controller.call("_on_progress_received", completed_snapshot) # Assert assert_int(faction_client.sync_count).is_equal(1) + + +func test_setup_wires_faction_standing_hud_dictionary() -> void: + # Arrange + var controller: Node = QuestHudController.new() + var progress_label := Label.new() + var accept_label := Label.new() + var standing_label := Label.new() + var progress := Node.new() + var defs := Node.new() + var faction_client := MockFactionSyncClient.new() + auto_free(controller) + auto_free(progress_label) + auto_free(accept_label) + auto_free(standing_label) + auto_free(progress) + auto_free(defs) + auto_free(faction_client) + add_child(controller) + # Act + controller.call( + "setup", + progress, + defs, + progress_label, + accept_label, + Callable(self, "_noop_http_config"), + null, + null, + null, + null, + {"client": faction_client, "label": standing_label} + ) + # Assert + assert_object(controller.get("_faction_standing_client")).is_same(faction_client) + assert_object(controller.get("_faction_standing_label")).is_same(standing_label) + + +func _noop_http_config(_client: Node) -> void: + pass