diff --git a/scenes/game_elements/characters/enemies/guard/components/guard.gd b/scenes/game_elements/characters/enemies/guard/components/guard.gd index 72a9c1bcc3..8a9a67e56e 100644 --- a/scenes/game_elements/characters/enemies/guard/components/guard.gd +++ b/scenes/game_elements/characters/enemies/guard/components/guard.gd @@ -64,10 +64,7 @@ const DEFAULT_SPRITE_FRAMES = preload("uid://ovu5wqo15s5g") @export_range(0.1, 5, 0.1, "or_greater", "suffix:s") var time_to_detect_player: float = 1.0 ## Scale factor for the detection area. @export_range(0.1, 5, 0.1, "or_greater", "or_less") var detection_area_scale: float = 1.0: - set(new_value): - detection_area_scale = new_value - if detection_area: - detection_area.scale = Vector2.ONE * detection_area_scale + set = _set_detection_area_scale @export_category("Debug") ## Enables movement in the editor for debugging. @@ -118,6 +115,7 @@ var character_animation_player_behavior: CharacterAnimationPlayerBehavior = %Cha @onready var _foot_sound: AudioStreamPlayer2D = %FootSound @onready var _fire_sound: AudioStreamPlayer2D = %FireSound @onready var _torch_hit_sound: AudioStreamPlayer2D = %TorchHitSound +@onready var _light: PointLight2D = %Light func _get_configuration_warnings() -> PackedStringArray: @@ -144,8 +142,8 @@ func _ready() -> void: _set_sprite_frames(sprite_frames) - if detection_area: - detection_area.scale = Vector2.ONE * detection_area_scale + _set_sprite_frames(sprite_frames) + _set_detection_area_scale(detection_area_scale) # When the level starts, the guard is placed at the beginning of the # patrol path. @@ -430,6 +428,15 @@ func _set_sprite_frames(new_sprite_frames: SpriteFrames) -> void: update_configuration_warnings() +func _set_detection_area_scale(new_detection_area_scale: float) -> void: + detection_area_scale = new_detection_area_scale + if not is_node_ready(): + return + if detection_area: + detection_area.scale = Vector2.ONE * detection_area_scale + _light.visible = detection_area_scale > 0.1 + + func _set_alerted_sound_stream(new_value: AudioStream) -> void: alerted_sound_stream = new_value if not is_node_ready(): diff --git a/scenes/game_elements/characters/enemies/guard/guard.tscn b/scenes/game_elements/characters/enemies/guard/guard.tscn index e8ef2b2b66..cf0853caea 100644 --- a/scenes/game_elements/characters/enemies/guard/guard.tscn +++ b/scenes/game_elements/characters/enemies/guard/guard.tscn @@ -230,6 +230,7 @@ collision_layer = 0 script = ExtResource("4_mswbt") [node name="Light" type="PointLight2D" parent="DetectionArea" unique_id=366085581] +unique_name_in_owner = true position = Vector2(37.3333, 1.33333) scale = Vector2(0.340496, 0.340496) color = Color(1, 1, 0.796078, 1)