From 7b1f5ad10574ef2b8567facb9070b02d5cdf47c2 Mon Sep 17 00:00:00 2001 From: autocommit Date: Wed, 15 Apr 2026 20:54:17 -0700 Subject: [PATCH] =?UTF-8?q?feat(map-placer):=20=E2=9C=A8=20Introduce=20sch?= =?UTF-8?q?ool=20affinity=20logic=20to=20strategically=20group=20and=20pla?= =?UTF-8?q?ce=20resources=20using=20new=20affinity-based=20placement=20met?= =?UTF-8?q?hods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/src/generation/map_placer.gd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/game/engine/src/generation/map_placer.gd b/src/game/engine/src/generation/map_placer.gd index 48b16707..98b5d089 100644 --- a/src/game/engine/src/generation/map_placer.gd +++ b/src/game/engine/src/generation/map_placer.gd @@ -131,7 +131,9 @@ func place_resources(game_map: RefCounted, multiplier: float) -> void: var res_id: String = res.get("id", "") var valid_terrains: Array = res.get("terrains", []) var climate_zones: Array = res.get("climate_zones", []) - var affinity: String = res.get("school_affinity", "") + var affinity: String = "" + if res.has("school_affinity") and res["school_affinity"] != null: + affinity = str(res["school_affinity"]) eligible[res_id] = [] eligible_weights[res_id] = PackedFloat32Array() for axial: Vector2i in game_map.tiles: @@ -186,7 +188,9 @@ func place_resources(game_map: RefCounted, multiplier: float) -> void: if candidates.is_empty(): continue - var cand_weights_arr: Array[float] = Array(cand_weights, TYPE_FLOAT, "", null) + var cand_weights_arr: Array[float] = [] + for w: float in cand_weights: + cand_weights_arr.append(w) var tile_idx: int = _weighted_random_index(cand_weights_arr) if tile_idx < 0: tile_idx = _rng.randi_range(0, candidates.size() - 1)