diff --git a/levels/ghost_ship/ghost_ship_level.tscn b/levels/ghost_ship/ghost_ship_level.tscn index 3e18d62..4da4b47 100644 --- a/levels/ghost_ship/ghost_ship_level.tscn +++ b/levels/ghost_ship/ghost_ship_level.tscn @@ -1772,7 +1772,7 @@ shape = SubResource("ConcavePolygonShape3D_if0c2") [node name="MessHallMeetSpookSpawner" type="Marker3D" parent="BeastNav/Corridor1/T-Junction2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Corridor1/T-Junction2/MessHallMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.90735e-06, 0, 21) @@ -2293,7 +2293,7 @@ spawners = [NodePath("../../Corridor1/T-Junction2/MessHallMeetSpookSpawner"), No [node name="MedbayMeetSpookSpawner" type="Marker3D" parent="BeastNav/MessHall"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1.5, 2.1) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/MessHall/MedbayMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6) @@ -2396,7 +2396,7 @@ mesh = SubResource("ArrayMesh_48a1a") [node name="MessHallMeetSpookSpawner" type="Marker3D" parent="BeastNav/Corridor2/T-Junction1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Corridor2/T-Junction1/MessHallMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12) @@ -2404,7 +2404,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12) [node name="CrewQuartersMeetSpookSpawner" type="Marker3D" parent="BeastNav/Corridor2/T-Junction1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Corridor2/T-Junction1/CrewQuartersMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 0) @@ -3227,7 +3227,7 @@ shape = SubResource("ConcavePolygonShape3D_if0c2") [node name="CrewQuartersMeetSpookSpawner" type="Marker3D" parent="BeastNav/Corridor3/T-Junction1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Corridor3/T-Junction1/CrewQuartersMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.62268e-06, 0, -30) @@ -3303,7 +3303,7 @@ shape = SubResource("ConcavePolygonShape3D_if0c2") [node name="MedbayMeetSpookSpawner" type="Marker3D" parent="BeastNav/Corridor3/T-Junction3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.38419e-07, 1.5, 0) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Corridor3/T-Junction3/MedbayMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.14722e-06, 0, 42) @@ -4078,7 +4078,7 @@ outline_size = 24 [node name="MessHallMeetSpookSpawner" type="Marker3D" parent="BeastNav/Medbay"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.5, -12) script = ExtResource("52_4akax") -mob_lifespan = 3.0 +mob_lifespan = 2.2 [node name="Target" type="Marker3D" parent="BeastNav/Medbay/MessHallMeetSpookSpawner"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 15) diff --git a/src/world/mechanics/alarm/gunk_alarm.gd b/src/world/mechanics/alarm/gunk_alarm.gd index 38893b3..12a20dc 100644 --- a/src/world/mechanics/alarm/gunk_alarm.gd +++ b/src/world/mechanics/alarm/gunk_alarm.gd @@ -14,6 +14,7 @@ var _busy := false @onready var pulse_listener_timer: Timer = %PulseListenerTimer @onready var animation_player: AnimationPlayer = $FrameSkipper/AlarmMesh/AnimationPlayer +@onready var effect_animation: AnimationPlayer = %EffectAnimation @onready var bud: MeshInstance3D = $FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud @onready var alarm_sfx: AudioStreamPlayer3D = %AlarmSFX @@ -26,6 +27,7 @@ func trigger() -> void: _busy = true Game.manager.raise_alert(ALERT_DELTA) animation_player.play("trigger") + effect_animation.play("trigger") alarm_sfx.play() diff --git a/src/world/mechanics/alarm/gunk_alarm.tscn b/src/world/mechanics/alarm/gunk_alarm.tscn index 1f67103..5aa3474 100644 --- a/src/world/mechanics/alarm/gunk_alarm.tscn +++ b/src/world/mechanics/alarm/gunk_alarm.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=4 uid="uid://dgeg3kkogm71m"] +[gd_scene load_steps=13 format=4 uid="uid://dgeg3kkogm71m"] [ext_resource type="Script" uid="uid://djb5tabjcvwkt" path="res://src/world/mechanics/alarm/gunk_alarm.gd" id="1_piaxx"] [ext_resource type="PackedScene" uid="uid://60ks4l42qxia" path="res://assets/grunk/alarm/alarm.gltf" id="2_6vdvf"] @@ -43,6 +43,67 @@ _surfaces = [{ }] blend_shape_mode = 0 +[sub_resource type="Animation" id="Animation_6vdvf"] +resource_name = "trigger" +length = 6.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.333333, 5.3, 6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Color(0.25, 0.88, 1, 1), Color(1, 0.25, 0.2625, 1), Color(1, 0.25, 0.2625, 1), Color(0.25, 0.88, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_strength") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.333333, 0.9, 3.96667, 5.3, 6), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.02, 0.05, 10.0, 10.0, 0.05, 0.02] +} + +[sub_resource type="Animation" id="Animation_g4yos"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0.25, 0.88, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("FrameSkipper/AlarmMesh/Armature/Skeleton3D/Bud:mesh:surface_0/material:shader_parameter/emission_strength") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.02] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_vokcn"] +_data = { +&"RESET": SubResource("Animation_g4yos"), +&"trigger": SubResource("Animation_6vdvf") +} + [sub_resource type="SphereMesh" id="SphereMesh_b6er8"] radius = 0.285 height = 0.44 @@ -102,6 +163,14 @@ mesh = SubResource("ArrayMesh_c5y52") [node name="AnimationPlayer" parent="FrameSkipper/AlarmMesh" index="1"] speed_scale = 7.4 +[node name="EffectAnimation" type="AnimationPlayer" parent="FrameSkipper"] +unique_name_in_owner = true +root_node = NodePath("../..") +libraries = { +&"": SubResource("AnimationLibrary_vokcn") +} +speed_scale = 7.4 + [node name="CollisionMesh" type="MeshInstance3D" parent="."] transform = Transform3D(0.906308, 0, -0.422618, 0, 1, 0, 0.422618, 0, 0.906308, 0, 0.2, 0) visible = false