From a10639669dde5d2ed30c5ce5ff5de5b9a409f012 Mon Sep 17 00:00:00 2001 From: autocommit Date: Thu, 30 Apr 2026 00:14:46 -0700 Subject: [PATCH] =?UTF-8?q?feat(combat):=20=E2=9C=A8=20Add=20bridge=20occu?= =?UTF-8?q?pation=20multiplier=20and=20capture=20marking=20logic=20for=20c?= =?UTF-8?q?ombat=20resolution=20and=20turn=20processing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/src/modules/combat/combat_utils.gd | 2 ++ src/game/engine/src/modules/management/turn_processor.gd | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/game/engine/src/modules/combat/combat_utils.gd b/src/game/engine/src/modules/combat/combat_utils.gd index a6b56d18..66602f84 100644 --- a/src/game/engine/src/modules/combat/combat_utils.gd +++ b/src/game/engine/src/modules/combat/combat_utils.gd @@ -117,6 +117,8 @@ static func capture_city( city.owner = attacker.owner city.is_capital = false + if city._bridge.is_available(): + city._bridge._gd_city.call("mark_captured", GameState.turn_number) for tile_pos: Vector2i in city.owned_tiles: var layer: Dictionary = GameState.get_primary_layer() diff --git a/src/game/engine/src/modules/management/turn_processor.gd b/src/game/engine/src/modules/management/turn_processor.gd index f59f1192..bd581238 100644 --- a/src/game/engine/src/modules/management/turn_processor.gd +++ b/src/game/engine/src/modules/management/turn_processor.gd @@ -77,8 +77,11 @@ func _process_production(player: RefCounted) -> void: # Player if tile != null and tile.biome_id == "hills": building_prod += prod_hills var prod_pct: float = _sum_city_building_effect_float(c, "production_percent") + var occupation_mult: float = 1.0 + if c._bridge.is_available(): + occupation_mult = c._bridge._gd_city.call("get_occupation_production_mult", GameState.turn_number) var prod: int = int( - (yields.get("production", 1) + building_prod) * (1.0 + prod_pct) * prod_modifier + (yields.get("production", 1) + building_prod) * (1.0 + prod_pct) * prod_modifier * occupation_mult ) # Capture current item before apply_production pops it on completion. var current: Dictionary = (