lobby cam
This commit is contained in:
@@ -5,6 +5,7 @@ extends Node3D
|
||||
## previous module first, so no old mesh or collider can survive into the next fight.
|
||||
|
||||
@onready var _level_root: Node3D = $LevelRoot
|
||||
@onready var _camera: IsoCamera = $Player/Camera3D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -23,4 +24,5 @@ func load_active_level() -> void:
|
||||
if level == null or level.level_scene == null:
|
||||
push_warning("game_shell: active level has no level_scene")
|
||||
return
|
||||
_camera.set_framing_scale(level.camera_zoom)
|
||||
_level_root.add_child(level.level_scene.instantiate())
|
||||
|
||||
@@ -17,6 +17,10 @@ extends Resource
|
||||
@export var level_scene: PackedScene = null
|
||||
## Placeholder pip tint on the map until per-level icon art exists.
|
||||
@export var color: Color = Color(0.80, 0.62, 0.24)
|
||||
## Camera framing multiplier when this level loads — 1.0 is the shell camera's default
|
||||
## shot; >1 dollies the camera back for a wider view (the lobby pulls out so the whole
|
||||
## hub reads). Applied by game_shell; independent of the player's scroll-wheel zoom.
|
||||
@export var camera_zoom: float = 1.0
|
||||
## A boss level caps a run — its node is drawn larger and clearing it ends the map.
|
||||
@export var is_boss: bool = false
|
||||
## The enemy this level pits the bull against. Null → the usual matador wave (the
|
||||
|
||||
@@ -61,6 +61,8 @@ func _ready() -> void:
|
||||
_bear.enemy_scene = _BEAR_SCENE
|
||||
# The lobby is a fightless hub — no enemy_scene, so no wave spawns and no win/lose.
|
||||
_lobby = _make_level(&"lobby", "Lobby", _LOBBY_LEVEL, Color(0.62, 0.66, 0.72), false)
|
||||
# It's a roomy hub with nothing to fight — pull the camera back so more of it reads.
|
||||
_lobby.camera_zoom = 1.6
|
||||
|
||||
|
||||
func _make_level(
|
||||
|
||||
Reference in New Issue
Block a user