A Third-Person-Shooter Godot game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

380 lines
16 KiB

[gd_scene load_steps=51 format=2]
[ext_resource path="res://enemies/standard_merc/model/merc1.glb" type="PackedScene" id=1]
[ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=2]
[ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=3]
[ext_resource path="res://enemies/standard_merc/standard_merc.gd" type="Script" id=4]
[ext_resource path="res://player/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=5]
[ext_resource path="res://enemies/common/audio/explosion.wav" type="AudioStream" id=6]
[ext_resource path="res://player/audio/land.wav" type="AudioStream" id=7]
[ext_resource path="res://player/audio/shoot.wav" type="AudioStream" id=8]
[ext_resource path="res://player/audio/jump.wav" type="AudioStream" id=9]
[ext_resource path="res://enemies/bad_cat/audio/step.wav" type="AudioStream" id=10]
[ext_resource path="res://player/audio/step_random_pitch.tres" type="AudioStream" id=11]
[ext_resource path="res://enemies/common/Hitbox.gd" type="Script" id=12]
[ext_resource path="res://level/catalunya/map/Water.material" type="Material" id=13]
[sub_resource type="ParticlesMaterial" id=2]
flag_align_y = true
direction = Vector3( 0, 0, -1 )
spread = 15.0
gravity = Vector3( 0, -3, 0 )
initial_velocity = 3.0
[sub_resource type="SphereMesh" id=3]
radius = 0.003
height = 0.02
[sub_resource type="SpatialMaterial" id=4]
flags_transparent = true
flags_unshaded = true
vertex_color_use_as_albedo = true
params_cull_mode = 2
albedo_texture = ExtResource( 3 )
[sub_resource type="Gradient" id=5]
offsets = PoolRealArray( 0.325926, 1 )
colors = PoolColorArray( 0.0507812, 0.955505, 1, 1, 0.875, 0.888672, 1, 0.305882 )
[sub_resource type="GradientTexture" id=6]
gradient = SubResource( 5 )
width = 32
[sub_resource type="Curve" id=7]
_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.791139, 0.990909 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=8]
width = 64
curve = SubResource( 7 )
[sub_resource type="ParticlesMaterial" id=9]
gravity = Vector3( 0, 0, 0 )
angle = -4.0
angle_random = 1.0
scale = 0.3
scale_curve = SubResource( 8 )
color_ramp = SubResource( 6 )
[sub_resource type="CapsuleShape" id=75]
radius = 0.838398
height = 3.62302
[sub_resource type="CapsuleShape" id=1]
radius = 1.77315
height = 1.96526
[sub_resource type="SphereShape" id=74]
radius = 100.0
[sub_resource type="CapsuleShape" id=77]
radius = 36.0
height = 250.0
[sub_resource type="CapsuleMesh" id=78]
radius = 50.0
mid_height = 250.0
[sub_resource type="AudioStreamRandomPitch" id=11]
audio_stream = ExtResource( 8 )
[sub_resource type="AnimationNodeAdd3" id=40]
resource_local_to_scene = true
filter_enabled = true
filters = [ "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.R", "Colette_Armature/Skeleton:ElbowTargetIK.R", "Colette_Armature/Skeleton:ElbowU.R", "Colette_Armature/Skeleton:F_Index_1.R", "Colette_Armature/Skeleton:F_Index_2.R", "Colette_Armature/Skeleton:F_Index_3.R", "Colette_Armature/Skeleton:F_Index_4.R", "Colette_Armature/Skeleton:F_Middle_1.R", "Colette_Armature/Skeleton:F_Middle_2.R", "Colette_Armature/Skeleton:F_Middle_3.R", "Colette_Armature/Skeleton:F_Middle_4.R", "Colette_Armature/Skeleton:F_Pinky_1.R", "Colette_Armature/Skeleton:F_Pinky_2.R", "Colette_Armature/Skeleton:F_Pinky_3.R", "Colette_Armature/Skeleton:F_Pinky_4.R", "Colette_Armature/Skeleton:F_Ring_1.R", "Colette_Armature/Skeleton:F_Ring_2.R", "Colette_Armature/Skeleton:F_Ring_3.R", "Colette_Armature/Skeleton:F_Ring_4.R", "Colette_Armature/Skeleton:F_Thumb_1.R", "Colette_Armature/Skeleton:F_Thumb_2.R", "Colette_Armature/Skeleton:F_Thumb_3.R", "Colette_Armature/Skeleton:ForeArm.R", "Colette_Armature/Skeleton:ForeArmSkin1.R", "Colette_Armature/Skeleton:ForeArmSkin2.R", "Colette_Armature/Skeleton:ForeArmSkin3.R", "Colette_Armature/Skeleton:Hand.R", "Colette_Armature/Skeleton:HandMark_IK_FK.R", "Colette_Armature/Skeleton:Shoulder.R", "Colette_Armature/Skeleton:UpperArm.R", "Colette_Armature/Skeleton:UpperArmSkin1.R", "Colette_Armature/Skeleton:UpperArmSkin2.R", "Colette_Armature/Skeleton:UpperArmSkin3.R", "Colette_Armature/Skeleton:hand_r", "Robot_Skeleton/Skeleton:neck.001", "Robot_Skeleton/Skeleton:upper_arm.R" ]
[sub_resource type="AnimationNodeAnimation" id=61]
resource_local_to_scene = true
animation = "AIM-Down"
[sub_resource type="AnimationNodeAnimation" id=62]
resource_local_to_scene = true
animation = "AIM-Up"
[sub_resource type="AnimationNodeBlend2" id=63]
resource_local_to_scene = true
filter_enabled = true
filters = [ "Colette_Armature/Skeleton:Eye.L", "Colette_Armature/Skeleton:Eye.L.001", "Colette_Armature/Skeleton:Eye.L.002", "Colette_Armature/Skeleton:Eye.R", "Colette_Armature/Skeleton:Eye.R.001", "Colette_Armature/Skeleton:Eye.R.002", "Colette_Armature/Skeleton:EyeMaster", "Colette_Armature/Skeleton:Eyebrowflex.L", "Colette_Armature/Skeleton:Eyebrowflex.R", "Colette_Armature/Skeleton:Eyeslash.L", "Colette_Armature/Skeleton:Eyeslash.R", "Colette_Armature/Skeleton:eyebrow1.L", "Colette_Armature/Skeleton:eyebrow1.R", "Colette_Armature/Skeleton:eyebrow2.L.001", "Colette_Armature/Skeleton:eyebrow2.R.001", "Colette_Armature/Skeleton:eyebrow3.L.001", "Colette_Armature/Skeleton:eyebrow3.R.001", "Colette_Armature/Skeleton:eyebrow4.L.001", "Colette_Armature/Skeleton:eyebrow4.R.001", "Colette_Armature/Skeleton:eyebrow5.L", "Colette_Armature/Skeleton:eyebrow5.R", "Colette_Armature/Skeleton:eyebrowMaster.L", "Colette_Armature/Skeleton:eyebrowMaster.R", "Robot_Skeleton/Skeleton:eyelid.d.L", "Robot_Skeleton/Skeleton:eyelid.d.R", "Robot_Skeleton/Skeleton:eyelid.u.L", "Robot_Skeleton/Skeleton:eyelid.u.R", "Robot_Skeleton/Skeleton:eyes" ]
[sub_resource type="AnimationNodeAnimation" id=44]
resource_local_to_scene = true
animation = "eyes-cycle"
[sub_resource type="AnimationNodeAnimation" id=45]
resource_local_to_scene = true
animation = "jump_5_hardlanding"
[sub_resource type="AnimationNodeAnimation" id=39]
animation = "Aim"
[sub_resource type="AnimationNodeAnimation" id=46]
resource_local_to_scene = true
animation = "jump_4_falling-cycle"
[sub_resource type="AnimationNodeAnimation" id=47]
resource_local_to_scene = true
animation = "jump_2_upwards-cycle"
[sub_resource type="AnimationNodeOneShot" id=48]
resource_local_to_scene = true
fadein_time = 0.25
fadeout_time = 0.25
autorestart_random_delay = 1.0
[sub_resource type="AnimationNodeTransition" id=49]
resource_local_to_scene = true
input_count = 5
xfade_time = 0.15
input_0/name = "idle"
input_0/auto_advance = false
input_1/name = "strafe"
input_1/auto_advance = false
input_2/name = "walk"
input_2/auto_advance = false
input_3/name = "jump_up"
input_3/auto_advance = false
input_4/name = "jump_down"
input_4/auto_advance = false
[sub_resource type="AnimationNodeAnimation" id=64]
resource_local_to_scene = true
animation = "strafe_left-cycle"
[sub_resource type="AnimationNodeAnimation" id=65]
resource_local_to_scene = true
animation = "strafe_right-cycle"
[sub_resource type="AnimationNodeAnimation" id=66]
resource_local_to_scene = true
animation = "strafe_back-cycle"
[sub_resource type="AnimationNodeAnimation" id=67]
resource_local_to_scene = true
animation = "strafe_front-cycle"
[sub_resource type="AnimationNodeAnimation" id=68]
resource_local_to_scene = true
animation = "Idlecombat-cycle"
[sub_resource type="AnimationNodeBlendSpace2D" id=55]
resource_local_to_scene = true
blend_point_0/node = SubResource( 64 )
blend_point_0/pos = Vector2( 1, 0 )
blend_point_1/node = SubResource( 65 )
blend_point_1/pos = Vector2( -1, 0 )
blend_point_2/node = SubResource( 66 )
blend_point_2/pos = Vector2( 0, -1 )
blend_point_3/node = SubResource( 67 )
blend_point_3/pos = Vector2( 0, 1 )
blend_point_4/node = SubResource( 68 )
blend_point_4/pos = Vector2( 0, 0 )
[sub_resource type="AnimationNodeAnimation" id=69]
resource_local_to_scene = true
animation = "Idle-cycle"
[sub_resource type="AnimationNodeAnimation" id=70]
resource_local_to_scene = true
animation = "running_nogun-cycle"
[sub_resource type="AnimationNodeAnimation" id=71]
resource_local_to_scene = true
animation = "running_gun-cycle"
[sub_resource type="AnimationNodeAnimation" id=72]
resource_local_to_scene = true
animation = "Idlecombat-cycle"
[sub_resource type="AnimationNodeBlendSpace2D" id=60]
resource_local_to_scene = true
blend_point_0/node = SubResource( 69 )
blend_point_0/pos = Vector2( 0, 0 )
blend_point_1/node = SubResource( 70 )
blend_point_1/pos = Vector2( 1, 0 )
blend_point_2/node = SubResource( 71 )
blend_point_2/pos = Vector2( 1, 1 )
blend_point_3/node = SubResource( 72 )
blend_point_3/pos = Vector2( 0, 1 )
min_space = Vector2( 0, 0 )
x_label = "speed"
y_label = "gun"
[sub_resource type="AnimationNodeBlendTree" id=73]
resource_local_to_scene = true
graph_offset = Vector2( -819, 27 )
nodes/aim/node = SubResource( 40 )
nodes/aim/position = Vector2( 380, 120 )
nodes/aimdown/node = SubResource( 61 )
nodes/aimdown/position = Vector2( 120, 60 )
nodes/aimup/node = SubResource( 62 )
nodes/aimup/position = Vector2( 140, 380 )
nodes/eye_blend/node = SubResource( 63 )
nodes/eye_blend/position = Vector2( 640, 120 )
nodes/eyes/node = SubResource( 44 )
nodes/eyes/position = Vector2( 380, 360 )
nodes/hardland/node = SubResource( 45 )
nodes/hardland/position = Vector2( -160, 400 )
nodes/idle/node = SubResource( 39 )
nodes/idle/position = Vector2( -420, -40 )
nodes/jumpdown/node = SubResource( 46 )
nodes/jumpdown/position = Vector2( -420, 400 )
nodes/jumpup/node = SubResource( 47 )
nodes/jumpup/position = Vector2( -440, 280 )
nodes/land/node = SubResource( 48 )
nodes/land/position = Vector2( 120, 180 )
nodes/output/position = Vector2( 840, 120 )
nodes/state/node = SubResource( 49 )
nodes/state/position = Vector2( -120, 120 )
nodes/strafe/node = SubResource( 55 )
nodes/strafe/position = Vector2( -640, 40 )
nodes/walk/node = SubResource( 60 )
nodes/walk/position = Vector2( -640, 200 )
node_connections = [ "state", 0, "idle", "state", 1, "strafe", "state", 2, "walk", "state", 3, "jumpup", "state", 4, "jumpdown", "output", 0, "eye_blend", "eye_blend", 0, "aim", "eye_blend", 1, "eyes", "land", 0, "state", "land", 1, "hardland", "aim", 0, "aimdown", "aim", 1, "land", "aim", 2, "aimup" ]
[node name="merc_st_1" type="KinematicBody"]
script = ExtResource( 4 )
[node name="merc1" parent="." instance=ExtResource( 1 )]
transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0 )
[node name="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="0"]
transform = Transform( 1, -1.77636e-15, 0, 1.77636e-14, 0.999486, -0.0320689, -5.68434e-14, 0.032069, 0.999485, -0.141024, 2.85038, 0.253468 )
[node name="BoneAttachment2" parent="merc1/CharacterRig001/Skeleton" index="1"]
transform = Transform( -0.864423, -0.469201, -0.180617, -0.0894964, -0.209907, 0.973616, -0.494735, 0.857782, 0.139457, 0.253897, 1.91372, 0.970537 )
[node name="BoneAttachment3" parent="merc1/CharacterRig001/Skeleton" index="2"]
transform = Transform( 0.41059, -0.0995836, -0.906366, -0.762978, -0.58181, -0.281711, -0.499279, 0.807205, -0.314866, -1.05637, 1.45186, 0.211358 )
[node name="BoneAttachment4" parent="merc1/CharacterRig001/Skeleton" index="3"]
transform = Transform( 0.987501, 0.0954544, -0.125421, 0.00230877, -0.804427, -0.594048, -0.157597, 0.586333, -0.794592, 0.336515, 0.182227, 1.29471 )
[node name="BoneAttachment5" parent="merc1/CharacterRig001/Skeleton" index="4"]
transform = Transform( 0.990442, 0.133285, -0.0354968, 0.00633056, -0.301008, -0.953602, -0.137785, 0.944261, -0.298975, 0.179503, 0.536819, 0.182357 )
[node name="BoneAttachment6" parent="merc1/CharacterRig001/Skeleton" index="5"]
transform = Transform( 0.993216, -0.0799971, 0.0843927, -0.115633, -0.756083, 0.64418, 0.0122754, -0.64957, -0.760203, -0.415847, -0.78547, 0.189681 )
[node name="BoneAttachment7" parent="merc1/CharacterRig001/Skeleton" index="6"]
transform = Transform( 0.995782, -0.0915606, 0.00586568, -0.0916677, -0.995552, 0.0218013, 0.00384344, -0.0222471, -0.999746, -0.307987, 0.387305, 0.215888 )
[node name="BoneAttachment8" parent="merc1/CharacterRig001/Skeleton" index="7"]
transform = Transform( 1, -1.06581e-14, 2.38419e-07, 6.17289e-08, 0.965901, -0.25891, -2.30289e-07, 0.25891, 0.965901, -0.141024, 0.588151, 0.19426 )
[node name="BoneAttachment9" parent="merc1/CharacterRig001/Skeleton" index="8"]
transform = Transform( 1, -1.06581e-14, 2.38419e-07, 6.17289e-08, 0.965901, -0.25891, -2.30289e-07, 0.25891, 0.965901, -0.141024, 0.588151, 0.19426 )
[node name="GunBone" type="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="20"]
[node name="ShootFrom" type="Position3D" parent="merc1/CharacterRig001/Skeleton/GunBone"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, -0.83252, 1.76359, 2.32827 )
[node name="ShootParticle" type="Particles" parent="merc1/CharacterRig001/Skeleton/GunBone/ShootFrom"]
transform = Transform( 1, 2.04891e-08, 0, 3.21306e-08, 1, 5.58794e-09, 0, 0, 1, 0, 0, 0 )
material_override = ExtResource( 2 )
emitting = false
amount = 10
lifetime = 0.3
one_shot = true
explosiveness = 0.79
local_coords = false
process_material = SubResource( 2 )
draw_pass_1 = SubResource( 3 )
[node name="MuzzleFlash" type="Particles" parent="merc1/CharacterRig001/Skeleton/GunBone/ShootFrom"]
transform = Transform( 1, 0, -2.00234e-08, 1.21072e-08, -4.37722e-08, -1, -2.98023e-08, 1, -4.74975e-08, 0, 0, 0 )
material_override = SubResource( 4 )
emitting = false
amount = 1
lifetime = 0.1
one_shot = true
explosiveness = 1.0
process_material = SubResource( 9 )
draw_pass_1 = ExtResource( 5 )
[node name="ChestBone" type="BoneAttachment" parent="merc1/CharacterRig001/Skeleton" index="21"]
transform = Transform( 1, -4.84561e-15, -2.38419e-07, 2.16312e-10, 0.999999, 0.000907198, 2.38418e-07, -0.000907179, 0.999999, -0.141024, 1.4479, 0.307752 )
bone_name = "spine2"
[node name="Hitbox" type="KinematicBody" parent="merc1/CharacterRig001/Skeleton/ChestBone"]
collision_layer = 64
collision_mask = 0
script = ExtResource( 12 )
node_with_hit = NodePath("../../../../..")
[node name="CollisionShape" type="CollisionShape" parent="merc1/CharacterRig001/Skeleton/ChestBone/Hitbox"]
transform = Transform( 1, 0, -6.93889e-17, -6.93889e-17, -4.4005e-08, -1, 0, 1, -4.4005e-08, 7.45058e-08, -0.228799, 0.156217 )
shape = SubResource( 75 )
[node name="CapsuleShape" type="CollisionShape" parent="."]
transform = Transform( 0.25, 0, 0, 0, -1.09278e-08, 0.25, 0, -0.25, -1.09278e-08, 0, 0.716, 0 )
shape = SubResource( 1 )
[node name="FireCooldown" type="Timer" parent="."]
wait_time = 0.4
one_shot = true
autostart = true
[node name="ReactionTime" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[node name="PlayerDetection1" type="Area" parent="."]
transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0 )
collision_layer = 2
collision_mask = 2
[node name="NormalDetection" type="CollisionShape" parent="PlayerDetection1"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 43.7507 )
shape = SubResource( 74 )
[node name="AttentiveLoS" type="CollisionShape" parent="PlayerDetection1"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 143.478 )
shape = SubResource( 77 )
disabled = true
[node name="DebugMesh" type="MeshInstance" parent="PlayerDetection1/AttentiveLoS"]
visible = false
mesh = SubResource( 78 )
material/0 = ExtResource( 13 )
[node name="SoundEffects" type="Node" parent="."]
[node name="Step" type="AudioStreamPlayer" parent="SoundEffects"]
stream = ExtResource( 11 )
[node name="Jump" type="AudioStreamPlayer" parent="SoundEffects"]
stream = ExtResource( 9 )
[node name="Land" type="AudioStreamPlayer" parent="SoundEffects"]
stream = ExtResource( 7 )
[node name="Shoot" type="AudioStreamPlayer" parent="SoundEffects"]
stream = SubResource( 11 )
[node name="Explosion" type="AudioStreamPlayer3D" parent="SoundEffects"]
stream = ExtResource( 6 )
unit_db = 12.0
unit_size = 15.0
[node name="Hit" type="AudioStreamPlayer3D" parent="SoundEffects"]
stream = ExtResource( 10 )
unit_db = 3.0
unit_size = 15.0
[node name="AnimationTree" type="AnimationTree" parent="."]
tree_root = SubResource( 73 )
anim_player = NodePath("../merc1/AnimationPlayer")
active = true
process_mode = 0
root_motion_track = NodePath("Colette_Armature/Skeleton:Root")
parameters/aim/add_amount = 0
parameters/eye_blend/blend_amount = 1.0
parameters/land/active = false
parameters/state/current = 0
parameters/strafe/blend_position = Vector2( 0.00158477, 0.982759 )
parameters/walk/blend_position = Vector2( 0, 0 )
[connection signal="body_entered" from="PlayerDetection1" to="." method="_on_PlayerDetection1_body_entered"]
[connection signal="body_exited" from="PlayerDetection1" to="." method="_on_PlayerDetection1_body_exited"]
[editable path="merc1"]