gfolf2/src/player/shot_setup/shot_setup.tscn
2025-01-07 11:59:37 -07:00

667 lines
21 KiB
Plaintext

[gd_scene load_steps=42 format=3 uid="uid://cy7t2tc4y3b4"]
[ext_resource type="Script" path="res://src/player/shot_setup/shot_setup.gd" id="1_r6ei4"]
[ext_resource type="Script" path="res://src/player/shot_setup/ball_point.gd" id="2_e6i3g"]
[ext_resource type="PackedScene" uid="uid://c2k88ns0h5ie1" path="res://src/ui/3d/arrow/arrow.tscn" id="2_s70wl"]
[ext_resource type="Script" path="res://src/player/shot_setup/shot_sfx.gd" id="3_7vs2d"]
[ext_resource type="PackedScene" uid="uid://1s3gywmoi20e" path="res://src/characters/player_characters/gfolf_girl/gfolf_girl.tscn" id="3_e4aur"]
[ext_resource type="AudioStream" uid="uid://cllhgumv1fkju" path="res://assets/sound/sfx/player/drive1.wav" id="3_em3cj"]
[ext_resource type="AudioStream" uid="uid://c8vouau0488fh" path="res://assets/sound/sfx/player/drive2.wav" id="4_4cajc"]
[ext_resource type="PackedScene" uid="uid://fht6j87o8ecr" path="res://src/ui/3d/projectile_arc/projectile_arc.tscn" id="4_ry2ho"]
[ext_resource type="AudioStream" uid="uid://cskhg5l86yvkw" path="res://assets/sound/sfx/player/drive3.wav" id="5_5lj1j"]
[ext_resource type="AudioStream" uid="uid://bkd8py2e7yfat" path="res://assets/sound/sfx/player/drive4.wav" id="6_1wnu3"]
[ext_resource type="PackedScene" uid="uid://dbdul15c4oblg" path="res://src/ui/3d/projected_target.tscn" id="6_mynqj"]
[ext_resource type="AudioStream" uid="uid://j54ssyodqnn3" path="res://assets/sound/sfx/player/putt1.wav" id="7_niyj5"]
[ext_resource type="Script" path="res://src/player/shot_setup/hitbox.gd" id="7_uh8kn"]
[ext_resource type="Texture2D" uid="uid://2yoipvd107t1" path="res://assets/sprites/dope_explosion/dope_explosion.tres" id="8_5ghmo"]
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="9_y5iv1"]
[ext_resource type="Script" path="res://src/player/shot_setup/death_sequence.gd" id="10_vakjm"]
[ext_resource type="AudioStream" uid="uid://ixxphtt1fp88" path="res://assets/sound/sfx/player/hit2.wav" id="11_i5g55"]
[ext_resource type="AudioStream" uid="uid://wa0uejal81b" path="res://assets/sound/sfx/player/hit3.wav" id="12_0losp"]
[ext_resource type="AudioStream" uid="uid://cvsv02inxvsyw" path="res://assets/sound/sfx/player/explosion.mp3" id="15_fn6g1"]
[ext_resource type="Script" path="res://src/player/shot_setup/explosion.gd" id="15_ytrxd"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gh0gi"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("3_em3cj")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_7isox"]
random_pitch = 1.1
streams_count = 3
stream_0/stream = ExtResource("4_4cajc")
stream_1/stream = ExtResource("5_5lj1j")
stream_2/stream = ExtResource("6_1wnu3")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wnuop"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("7_niyj5")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_7seum"]
playback_mode = 1
random_pitch = 1.1
streams_count = 2
stream_0/stream = ExtResource("11_i5g55")
stream_1/stream = ExtResource("12_0losp")
[sub_resource type="Animation" id="Animation_ll5da"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AudioStreamPlayer3D:playing")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_dlkgq"]
resource_name = "death"
length = 8.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Camera3D1")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(1.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"make_current"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Camera3D2")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(2.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"make_current"
}]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Camera3D3")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(3.3),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"make_current"
}]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%PlayerPivot/..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(8),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"finish_death"
}]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 1.1, 2.2, 3.3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"values": [{
"args": [],
"method": &"screen_shake"
}, {
"args": [],
"method": &"screen_shake"
}, {
"args": [],
"method": &"screen_shake"
}, {
"args": [],
"method": &"screen_shake"
}]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("AudioStreamPlayer3D:playing")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kc803"]
_data = {
"RESET": SubResource("Animation_ll5da"),
"death": SubResource("Animation_dlkgq")
}
[sub_resource type="Animation" id="Animation_ug2a7"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.001, 0.001, 0.001)]
}
[sub_resource type="Animation" id="Animation_3obkd"]
resource_name = "hide"
length = 0.42
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.42),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.42),
"transitions": PackedFloat32Array(1.618, 1),
"update": 0,
"values": [Vector3(1, 1, 1), Vector3(0.001, 0.001, 0.001)]
}
[sub_resource type="Animation" id="Animation_dku72"]
resource_name = "show"
length = 0.42
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.233333, 0.366667, 0.42),
"transitions": PackedFloat32Array(0.618, 1, 1, 1),
"update": 0,
"values": [Vector3(0.001, 0.001, 0.001), Vector3(1.1, 1.1, 1.1), Vector3(0.95, 0.95, 0.95), Vector3(1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_rw0cf"]
_data = {
"RESET": SubResource("Animation_ug2a7"),
"hide": SubResource("Animation_3obkd"),
"show": SubResource("Animation_dku72")
}
[sub_resource type="Animation" id="Animation_oks0y"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:fov")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [75.0]
}
[sub_resource type="Animation" id="Animation_e65hh"]
resource_name = "shot"
length = 4.0
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.12, 4),
"transitions": PackedFloat32Array(0.618, 1, 1.618, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 1, -3), Vector3(0, 1, -3), Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:fov")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1, 0.12, 4),
"transitions": PackedFloat32Array(0.618, 1, 1.618, 1),
"update": 0,
"values": [75.0, 85.0, 85.0, 75.0]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("%Direction/..")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"start_shot_track"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_u78hq"]
_data = {
"RESET": SubResource("Animation_oks0y"),
"shoot": SubResource("Animation_e65hh")
}
[sub_resource type="SphereShape3D" id="SphereShape3D_xvvdi"]
radius = 1.5
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4n2rd"]
transparency = 1
shading_mode = 0
albedo_texture = ExtResource("8_5ghmo")
texture_filter = 4
billboard_mode = 1
grow = true
grow_amount = 1.0
[sub_resource type="QuadMesh" id="QuadMesh_t34ji"]
material = SubResource("StandardMaterial3D_4n2rd")
size = Vector2(2.84, 4)
[sub_resource type="Animation" id="Animation_vahxw"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ExplosionMesh:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = false
tracks/1/path = NodePath("ExplosionMesh/ExplosionSFXPlayer:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_bv1ov"]
resource_name = "explode"
length = 1.618
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ExplosionMesh:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.618),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ExplosionMesh/ExplosionSFXPlayer:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("ExplosionMesh")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dg262"]
_data = {
"RESET": SubResource("Animation_vahxw"),
"explode": SubResource("Animation_bv1ov")
}
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_8natr"]
random_pitch = 1.1
streams_count = 1
stream_0/stream = ExtResource("15_fn6g1")
[node name="ShotSetup" type="Node3D"]
script = ExtResource("1_r6ei4")
perfect_aim = true
[node name="BallPoint" type="Node3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.08, 0)
script = ExtResource("2_e6i3g")
[node name="ShotSFX" type="Node3D" parent="BallPoint"]
unique_name_in_owner = true
script = ExtResource("3_7vs2d")
[node name="GoodDriveSFXPlayer" type="AudioStreamPlayer3D" parent="BallPoint/ShotSFX"]
unique_name_in_owner = true
stream = SubResource("AudioStreamRandomizer_gh0gi")
volume_db = -3.0
bus = &"SFX"
[node name="BadDriveSFXPlayer" type="AudioStreamPlayer3D" parent="BallPoint/ShotSFX"]
unique_name_in_owner = true
stream = SubResource("AudioStreamRandomizer_7isox")
volume_db = -1.0
bus = &"SFX"
[node name="PuttSFXPlayer" type="AudioStreamPlayer3D" parent="BallPoint/ShotSFX"]
unique_name_in_owner = true
stream = SubResource("AudioStreamRandomizer_wnuop")
bus = &"SFX"
[node name="PlayerPivot" type="Node3D" parent="."]
unique_name_in_owner = true
[node name="PlayerOffset" type="Node3D" parent="PlayerPivot"]
unique_name_in_owner = true
[node name="GfolfGirl" parent="PlayerPivot/PlayerOffset" instance=ExtResource("3_e4aur")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.556, 0, 0.05)
[node name="DemoCamera" type="Camera3D" parent="PlayerPivot/PlayerOffset" groups=["DemoCamera"]]
transform = Transform3D(-0.311543, -0.0687373, 0.947743, 0, 0.99738, 0.0723374, -0.950232, 0.0225362, -0.310727, 0.845792, 0.706621, -0.383459)
[node name="DeathSequence" type="Node3D" parent="PlayerPivot/PlayerOffset"]
process_mode = 3
script = ExtResource("10_vakjm")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer" parent="PlayerPivot/PlayerOffset/DeathSequence"]
stream = SubResource("AudioStreamRandomizer_7seum")
volume_db = -4.0
bus = &"SFX"
[node name="DeathAnimation" type="AnimationPlayer" parent="PlayerPivot/PlayerOffset/DeathSequence"]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_kc803")
}
[node name="Camera3D1" type="Camera3D" parent="PlayerPivot/PlayerOffset/DeathSequence"]
transform = Transform3D(-0.00257592, 0.0226116, 0.999741, 0, 0.999744, -0.0226116, -0.999997, -5.82457e-05, -0.00257526, 1.6905, 0.831287, 0.0668699)
far = 8192.0
[node name="Camera3D2" type="Camera3D" parent="PlayerPivot/PlayerOffset/DeathSequence"]
transform = Transform3D(0.864734, -0.175509, 0.470564, 0, 0.936951, 0.349461, -0.502229, -0.302191, 0.810214, 0.386249, 1.16999, 0.906541)
far = 8192.0
[node name="Camera3D3" type="Camera3D" parent="PlayerPivot/PlayerOffset/DeathSequence"]
transform = Transform3D(0.00178714, 0.559853, 0.82859, 0, 0.828592, -0.559853, -0.999998, 0.00100054, 0.00148081, 0.334412, 0.629604, 0.136928)
far = 8192.0
[node name="Direction" type="Node3D" parent="."]
unique_name_in_owner = true
[node name="ShotRef" type="RayCast3D" parent="Direction"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.08, 0)
enabled = false
target_position = Vector3(0, 0, -1)
collision_mask = 0
collide_with_bodies = false
debug_shape_thickness = 4
[node name="Elevation" type="Node3D" parent="Direction"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.9, 0)
[node name="Pitch" type="Node3D" parent="Direction/Elevation"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.907777, 0.419452, 0, -0.419452, 0.907777, 0, 0, 0)
[node name="Zoom" type="Node3D" parent="Direction/Elevation/Pitch"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6)
[node name="Camera" type="Camera3D" parent="Direction/Elevation/Pitch/Zoom"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 2.98023e-08, 0, -2.98023e-08, 1, 0, 0, 0)
current = true
far = 8192.0
[node name="ArrowPivot" type="Node3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
[node name="Arrow" type="Node3D" parent="ArrowPivot"]
unique_name_in_owner = true
transform = Transform3D(0.001, 0, 0, 0, 0.001, 0, 0, 0, 0.001, 0, 0, 0)
[node name="ArrowAnimation" type="AnimationPlayer" parent="ArrowPivot/Arrow"]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_rw0cf")
}
autoplay = "show"
[node name="DriveArrow" type="Node3D" parent="ArrowPivot/Arrow"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0)
visible = false
[node name="ArrowMesh" parent="ArrowPivot/Arrow/DriveArrow" instance=ExtResource("2_s70wl")]
transform = Transform3D(0.2, 0, 0, 0, -1.74846e-08, 0.2, 0, -0.4, -8.74228e-09, 0, 0, -1)
loop_animation = 1
[node name="WedgeArrow" type="Node3D" parent="ArrowPivot/Arrow"]
unique_name_in_owner = true
transform = Transform3D(0.7, 0, 0, 0, 0.181173, -0.676148, 0, 0.676148, 0.181173, 0, 0, 0)
visible = false
[node name="ArrowMesh" parent="ArrowPivot/Arrow/WedgeArrow" instance=ExtResource("2_s70wl")]
transform = Transform3D(0.2, 0, 0, 0, -1.74846e-08, 0.2, 0, -0.4, -8.74228e-09, 0, 0, -1)
loop_animation = 1
[node name="IronArrow" type="Node3D" parent="ArrowPivot/Arrow"]
unique_name_in_owner = true
transform = Transform3D(0.7, 0, 0, 0, 0.449952, -0.536231, 0, 0.536231, 0.449952, 0, 0, 0)
visible = false
[node name="ArrowMesh" parent="ArrowPivot/Arrow/IronArrow" instance=ExtResource("2_s70wl")]
transform = Transform3D(0.2, 0, 0, 0, -1.74846e-08, 0.2, 0, -0.4, -8.74228e-09, 0, 0, -1)
loop_animation = 1
[node name="PuttArrow" type="Node3D" parent="ArrowPivot/Arrow"]
unique_name_in_owner = true
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
visible = false
[node name="ArrowMesh" parent="ArrowPivot/Arrow/PuttArrow" instance=ExtResource("2_s70wl")]
transform = Transform3D(0.2, 0, 0, 0, -1.74846e-08, 0.2, 0, -0.4, -8.74228e-09, 0, 0, -1)
loop_animation = 1
[node name="ShotProjection" parent="ArrowPivot" instance=ExtResource("4_ry2ho")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0)
visible = false
initial_speed = 50.0
time_step = 0.1
max_steps = 100
[node name="ProjectedTarget" parent="ArrowPivot/ShotProjection" instance=ExtResource("6_mynqj")]
[node name="ShotAnimation" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
root_node = NodePath("../Direction/Elevation/Pitch/Zoom/Camera")
libraries = {
"": SubResource("AnimationLibrary_u78hq")
}
[node name="Hitbox" type="Area3D" parent="."]
script = ExtResource("7_uh8kn")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"]
shape = SubResource("SphereShape3D_xvvdi")
[node name="ExplosionMesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
visible = false
mesh = SubResource("QuadMesh_t34ji")
script = ExtResource("15_ytrxd")
[node name="ExplosionAnimation" type="AnimationPlayer" parent="ExplosionMesh"]
unique_name_in_owner = true
root_node = NodePath("../..")
libraries = {
"": SubResource("AnimationLibrary_dg262")
}
[node name="ExplosionSFXPlayer" type="AudioStreamPlayer3D" parent="ExplosionMesh"]
stream = SubResource("AudioStreamRandomizer_8natr")
unit_size = 60.0
bus = &"SFX"
[node name="PlayerLabel" type="Label3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
visibility_range_begin = 50.0
visibility_range_begin_margin = 3.0
visibility_range_fade_mode = 1
pixel_size = 0.001
billboard = 1
no_depth_test = true
fixed_size = true
texture_filter = 5
render_priority = 4
outline_render_priority = 3
text = "Player Name"
font = ExtResource("9_y5iv1")
font_size = 36
outline_size = 10
line_spacing = -16.0
autowrap_mode = 2
width = 120.0
[node name="Timers" type="Node" parent="."]
[node name="DownswingTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 0.42
one_shot = true
[node name="BallReturnTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
one_shot = true
[node name="ResetPromptTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 45.0
one_shot = true
[node name="IdlePromptTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 5.0
one_shot = true
[connection signal="tree_exiting" from="." to="." method="_on_tree_exiting"]
[connection signal="ball_changed" from="BallPoint" to="." method="_on_game_ball_changed"]
[connection signal="ball_collision" from="Hitbox" to="." method="_on_hitbox_ball_collision"]
[connection signal="body_entered" from="Hitbox" to="Hitbox" method="_on_body_entered"]
[connection signal="timeout" from="Timers/DownswingTimer" to="." method="finish_downswing"]
[connection signal="timeout" from="Timers/BallReturnTimer" to="." method="_on_ball_return_timer_timeout"]
[connection signal="timeout" from="Timers/ResetPromptTimer" to="." method="_on_reset_prompt_timer_timeout"]
[connection signal="timeout" from="Timers/IdlePromptTimer" to="." method="_on_idle_prompt_timer_timeout"]