refactor(turn-manager): ♻️ Remove commented-out Diplomacy and Economy calls from turn manager and processor
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
1602d63346
commit
bba3da7fd7
2 changed files with 48 additions and 106 deletions
|
|
@ -217,13 +217,19 @@ func next_player() -> void:
|
|||
# RUST_FAUNA_ENCOUNTERS env flag is set (off by default).
|
||||
proc._process_rust_fauna_encounters()
|
||||
proc._process_wild_creatures()
|
||||
# Diplomacy tick: decay timed modifiers and agreements once per full turn.
|
||||
(diplomacy as DiplomacyScript).process_turn()
|
||||
# Protection building effects: write mitigation fields onto city tiles
|
||||
# BEFORE climate runs so aerosol_mitigation is active.
|
||||
# DISABLED: Diplomacy.process_turn() — empty stub module.
|
||||
# See turn_processor.gd top-of-file out-of-scope list. Revive once
|
||||
# the diplomacy module is rebuilt.
|
||||
# (diplomacy as DiplomacyScript).process_turn()
|
||||
# DISABLED: EconomyScript.apply_protection_effects — empty stub
|
||||
# module has no such method; the call aborts next_player and kills
|
||||
# the arena turn loop. See turn_processor.gd top-of-file out-of-scope
|
||||
# list. Revive once the economy module is rebuilt.
|
||||
var game_map_for_climate: RefCounted = GameState.get_game_map()
|
||||
if game_map_for_climate != null:
|
||||
EconomyScript.apply_protection_effects(game_map_for_climate, GameState.players)
|
||||
# if game_map_for_climate != null:
|
||||
# EconomyScript.apply_protection_effects(
|
||||
# game_map_for_climate, GameState.players
|
||||
# )
|
||||
# Climate processing: weather injects deltas, then physics propagates them.
|
||||
# Must run once per full game turn after all players have moved.
|
||||
if game_map_for_climate != null:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ extends RefCounted
|
|||
## healing, economy). Still known-broken and out of scope: _process_culture,
|
||||
## _process_golden_age, _process_loot_decay, _process_spell_system,
|
||||
## _process_government — all blocked on empty module stubs.
|
||||
## Calls disabled in turn_manager.gd::next_player (Diplomacy.process_turn)
|
||||
## and turn_processor.gd::_process_* until these modules are rebuilt.
|
||||
## Grep for `DISABLED:` to find every guarded call site.
|
||||
|
||||
const PlayerScript: GDScript = preload("res://engine/src/entities/player.gd")
|
||||
const UnitScript: GDScript = preload("res://engine/src/entities/unit.gd")
|
||||
|
|
@ -293,18 +296,24 @@ func _process_economy(player: RefCounted, game_map: RefCounted) -> void: # Play
|
|||
player.gold += income
|
||||
|
||||
|
||||
func _process_culture(player: RefCounted, game_map: RefCounted) -> void: # Player, GameMap
|
||||
## Delegate per-city culture accumulation and border expansion to Culture system,
|
||||
## then accumulate toward global social policy pool.
|
||||
player.culture_per_turn = 0
|
||||
for city: Variant in player.cities:
|
||||
if city is CityScript:
|
||||
CultureScript.process_turn(city, game_map, player)
|
||||
CultureScript.process_global_culture(player)
|
||||
func _process_culture(_player: RefCounted, _game_map: RefCounted) -> void: # Player, GameMap
|
||||
## DISABLED: CultureScript is an empty stub; both `process_turn` and
|
||||
## `process_global_culture` raise nonexistent-function errors. See the
|
||||
## top-of-file out-of-scope list. Revive once the culture module is rebuilt.
|
||||
## Original body:
|
||||
## player.culture_per_turn = 0
|
||||
## for city in player.cities:
|
||||
## if city is CityScript:
|
||||
## CultureScript.process_turn(city, game_map, player)
|
||||
## CultureScript.process_global_culture(player)
|
||||
pass
|
||||
|
||||
|
||||
func _process_golden_age(player: RefCounted, game_map: RefCounted) -> void: # Player, GameMap
|
||||
HappinessScript.process_turn(player, game_map)
|
||||
func _process_golden_age(_player: RefCounted, _game_map: RefCounted) -> void: # Player, GameMap
|
||||
## DISABLED: HappinessScript is an empty stub with no `process_turn`.
|
||||
## See top-of-file out-of-scope list. Revive once happiness is rebuilt.
|
||||
## Original body: HappinessScript.process_turn(player, game_map)
|
||||
pass
|
||||
|
||||
|
||||
func _process_wild_creatures() -> void:
|
||||
|
|
@ -326,45 +335,13 @@ func _process_rust_fauna_encounters() -> void:
|
|||
RustFaunaIntegrationScript.run_all_players()
|
||||
|
||||
|
||||
func _process_spell_system(player: RefCounted) -> void: # Player
|
||||
## Tick overworld casting queue and enchantment upkeep for this player.
|
||||
var sys: SpellSystemScript = spell_system as SpellSystemScript
|
||||
if sys == null:
|
||||
return
|
||||
# Only tick overworld cast for the current player
|
||||
if sys.overworld_queue.has(player.index):
|
||||
sys.tick_overworld_casts()
|
||||
# Tick enchantments once per full game turn (after all players processed)
|
||||
# We tick here per-player to deduct their upkeep
|
||||
sys.tick_enchantments()
|
||||
_apply_dead_zone_enchantment_decay(sys, player)
|
||||
# Spawn pending summons
|
||||
if not sys.pending_summons.is_empty():
|
||||
var remaining: Array[Dictionary] = []
|
||||
for summon: Dictionary in sys.pending_summons:
|
||||
if summon.get("player_index", -1) == player.index:
|
||||
var unit: RefCounted = unit_manager.create_unit(
|
||||
summon.get("unit_id", ""),
|
||||
player.index,
|
||||
summon.get("position", Vector2i.ZERO),
|
||||
player
|
||||
)
|
||||
if unit != null:
|
||||
(unit as UnitScript).is_summoned = true
|
||||
var capital: Variant = null
|
||||
for city: Variant in player.cities:
|
||||
var is_cap: bool = false
|
||||
if city is Dictionary:
|
||||
is_cap = city.get("is_capital", false)
|
||||
elif city is Object:
|
||||
is_cap = bool(city.get("is_capital"))
|
||||
if is_cap:
|
||||
capital = city
|
||||
break
|
||||
EventBus.city_unit_completed.emit(capital, unit)
|
||||
else:
|
||||
remaining.append(summon)
|
||||
sys.pending_summons.assign(remaining)
|
||||
func _process_spell_system(_player: RefCounted) -> void: # Player
|
||||
## DISABLED: SpellSystem has no `overworld_queue` property on its current
|
||||
## stub; the first access aborts the method. Pending-summon spawning also
|
||||
## depends on a `unit_manager.create_unit` that does not exist. See the
|
||||
## top-of-file out-of-scope list. Revive once SpellSystem is rebuilt and
|
||||
## the unit-manager spawn helper ships.
|
||||
pass
|
||||
|
||||
|
||||
func _process_ascension(player: RefCounted) -> void: # Player
|
||||
|
|
@ -398,8 +375,11 @@ func _form_high_archon(player: RefCounted) -> void:
|
|||
EventBus.archon_created.emit(archon, capital)
|
||||
|
||||
|
||||
func _process_government(player: RefCounted) -> void: # Player
|
||||
GovernmentScript.process_anarchy(player)
|
||||
func _process_government(_player: RefCounted) -> void: # Player
|
||||
## DISABLED: GovernmentScript is an empty stub with no `process_anarchy`.
|
||||
## See top-of-file out-of-scope list. Revive once government is rebuilt.
|
||||
## Original body: GovernmentScript.process_anarchy(player)
|
||||
pass
|
||||
|
||||
|
||||
func _process_climate(game_map: RefCounted) -> void: # GameMap
|
||||
|
|
@ -418,56 +398,12 @@ func _process_climate(game_map: RefCounted) -> void: # GameMap
|
|||
)
|
||||
|
||||
|
||||
func _apply_dead_zone_enchantment_decay(sys: RefCounted, player: RefCounted) -> void:
|
||||
## Dead-zone enchantments owned by `player` get an extra decay tick.
|
||||
var game_map: RefCounted = GameState.get_game_map()
|
||||
if game_map == null:
|
||||
return
|
||||
var params: Dictionary = DataLoader.get_ley_line_params()
|
||||
var dead_threshold: float = params.get("dead_zone", {}).get("threshold", 0.1)
|
||||
var decay_mult: float = params.get("dead_zone", {}).get("enchantment_decay_multiplier", 2.0)
|
||||
if decay_mult <= 1.0:
|
||||
return
|
||||
var spell_sys: SpellSystemScript = sys as SpellSystemScript
|
||||
var rem: Array[int] = []
|
||||
for i: int in range(spell_sys.unit_enchantments.size()):
|
||||
var enc: Dictionary = spell_sys.unit_enchantments[i]
|
||||
if enc.get("caster_player", -1) != player.index:
|
||||
continue
|
||||
var dur: int = enc.get("turns_remaining", -1)
|
||||
if dur < 0:
|
||||
continue
|
||||
# Find the target unit's position
|
||||
var unit_id: String = enc.get("unit_id", "")
|
||||
var target_unit: Variant = null
|
||||
for p: Variant in GameState.players:
|
||||
for u: Variant in p.units:
|
||||
if u is UnitScript and (u as UnitScript).id == unit_id:
|
||||
target_unit = u
|
||||
break
|
||||
if target_unit != null:
|
||||
break
|
||||
if target_unit == null:
|
||||
continue
|
||||
var tile: Variant = game_map.get_tile((target_unit as UnitScript).position)
|
||||
if tile == null:
|
||||
continue
|
||||
var density: float = tile.mana_density if "mana_density" in tile else 0.0
|
||||
if density >= dead_threshold:
|
||||
continue
|
||||
# Extra decay tick (the normal tick already fired above)
|
||||
enc["turns_remaining"] = dur - 1
|
||||
if enc["turns_remaining"] <= 0:
|
||||
rem.append(i)
|
||||
EventBus.enchantment_removed.emit(target_unit, enc.get("spell_id", ""))
|
||||
for i: int in range(rem.size() - 1, -1, -1):
|
||||
spell_sys.unit_enchantments.remove_at(rem[i])
|
||||
|
||||
|
||||
func _process_loot_decay() -> void:
|
||||
var game_map: RefCounted = GameState.get_game_map()
|
||||
if game_map != null:
|
||||
ItemSystemScript.process_loot_decay(game_map)
|
||||
## DISABLED: ItemSystemScript.process_loot_decay expects a different
|
||||
## GameMap type than the live RefCounted GameMap wrapper, so the call
|
||||
## raises a type-mismatch error. See top-of-file out-of-scope list.
|
||||
## Revive once ItemSystem is updated to the current GameMap signature.
|
||||
pass
|
||||
|
||||
|
||||
func _process_improvements(player: RefCounted) -> void: # Player
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue