diff --git a/src/game/engine/scenes/world_map/world_map.gd b/src/game/engine/scenes/world_map/world_map.gd index e377c00a..3b3bc38e 100644 --- a/src/game/engine/scenes/world_map/world_map.gd +++ b/src/game/engine/scenes/world_map/world_map.gd @@ -13,6 +13,7 @@ const CityRendererScript: GDScript = preload("res://engine/src/rendering/city_re const LairOverlayRendererScript: GDScript = preload( "res://engine/src/rendering/lair_overlay_renderer.gd" ) +const FogRendererScript: GDScript = preload("res://engine/src/rendering/fog_renderer.gd") const CityScreenScene: PackedScene = preload("res://engine/scenes/city/city_screen.tscn") const ChroniclePanelScene: PackedScene = preload("res://engine/scenes/hud/chronicle_panel.tscn") const WorldMapCombatScript: GDScript = preload("res://engine/scenes/world_map/world_map_combat.gd") @@ -29,6 +30,7 @@ var _hex_renderer: Node2D = null var _unit_renderer: Node2D = null var _city_renderer: Node2D = null var _lair_overlay: Node2D = null +var _fog_renderer: Node2D = null var _city_screen: CanvasLayer = null var _chronicle_panel: CanvasLayer = null var _combat: RefCounted = null @@ -62,6 +64,9 @@ func _setup_renderers() -> void: _lair_overlay = LairOverlayRendererScript.new() _lair_overlay.name = "LairOverlayRenderer" $OverlayLayer.add_child(_lair_overlay) + _fog_renderer = FogRendererScript.new() + _fog_renderer.name = "FogRenderer" + $FogLayer.add_child(_fog_renderer) _city_screen = CityScreenScene.instantiate() add_child(_city_screen) _chronicle_panel = ChroniclePanelScene.instantiate() @@ -105,6 +110,13 @@ func _start_game() -> void: _hex_renderer.render_map(game_map) _lair_overlay.refresh() + var local_player: int = 0 + if not GameState.players.is_empty(): + var first_player: RefCounted = GameState.get_player(0) + if first_player != null: + local_player = first_player.index + _fog_renderer.initialize(game_map, local_player) + var bg_camera: Camera2D = _viewport_manager.get_background_camera() bg_camera.setup_bounds(game_map.width, game_map.height) @@ -196,6 +208,7 @@ func _update_fog(player: RefCounted, game_map: RefCounted) -> void: elif vis == 1: fog_positions.append(pos) _hex_renderer.update_fog(visible_positions, fog_positions) + _fog_renderer.update_all(game_map) func _sync_units() -> void: