[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"]