From 5e0f482b46fb6a6a62c35c62928ed0388dfd2bdd Mon Sep 17 00:00:00 2001 From: Natalie Date: Sat, 18 Apr 2026 21:46:07 -0700 Subject: [PATCH] =?UTF-8?q?fix(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=90=9B=20adjust=20null/empty=20checks=20for=20difficulty?= =?UTF-8?q?=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/scenes/tests/auto_play.gd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/game/engine/scenes/tests/auto_play.gd b/src/game/engine/scenes/tests/auto_play.gd index 65fe92e3..6820622b 100644 --- a/src/game/engine/scenes/tests/auto_play.gd +++ b/src/game/engine/scenes/tests/auto_play.gd @@ -796,12 +796,11 @@ func _fix_start_positions_if_needed() -> void: func _apply_per_player_difficulty_overrides() -> void: + # DataLoader.get_data("difficulty") returns {"easy": {full entry}, "normal": {...}, ...} + # already keyed by id — no wrapping "ai_difficulty" array at this level. var diff_data: Dictionary = DataLoader.get_data("difficulty") - if diff_data == null: + if diff_data == null or diff_data.is_empty(): return - var levels: Dictionary = {} - for entry: Dictionary in diff_data.get("ai_difficulty", []): - levels[str(entry.get("id", ""))] = entry.get("ai_modifiers", {}) # Use a fixed upper bound — this runs before loading_screen.gd populates # GameState.players, so players.size() == 0. Check all possible player slots. for p_idx: int in range(8): @@ -809,7 +808,8 @@ func _apply_per_player_difficulty_overrides() -> void: var tier: String = EnvConfig.get_var(key, "") if tier.is_empty(): continue - var mods: Dictionary = levels.get(tier, {}) + var entry: Dictionary = diff_data.get(tier, {}) + var mods: Dictionary = entry.get("ai_modifiers", {}) if mods.is_empty(): print("AutoPlay: WARNING: unknown difficulty tier '%s' for %s" % [tier, key]) continue