[gd_scene load_steps=50 format=2] [ext_resource path="res://enemies/bad_cat/bad_cat.gd" type="Script" id=1] [ext_resource path="res://enemies/bad_cat/model/Colette_Head.material" type="Material" id=2] [ext_resource path="res://enemies/common/audio/hit.wav" type="AudioStream" id=3] [ext_resource path="res://player/audio/step_random_pitch.tres" type="AudioStream" id=4] [ext_resource path="res://player/audio/jump.wav" type="AudioStream" id=5] [ext_resource path="res://player/audio/land.wav" type="AudioStream" id=6] [ext_resource path="res://player/audio/shoot.wav" type="AudioStream" id=7] [ext_resource path="res://enemies/common/audio/explosion.wav" type="AudioStream" id=8] [ext_resource path="res://player/bullet/bullet_material.tres" type="Material" id=9] [ext_resource path="res://enemies/bad_cat/model/muzzle_flash_particle_mesh_Cone.mesh" type="ArrayMesh" id=10] [ext_resource path="res://effects_shared/bullet/effect/FlarePolar.png" type="Texture" id=11] [ext_resource path="res://enemies/bad_cat/textures/animu_alunya_shadermat.tres" type="Material" id=12] [ext_resource path="res://player/model/Alunya.glb" type="PackedScene" id=13] [ext_resource path="res://enemies/bad_cat/model/Colette_Hair.material" type="Material" id=14] [ext_resource path="res://enemies/bad_cat/model/Bandana.material" type="Material" id=15] [ext_resource path="res://enemies/common/Hitbox.gd" type="Script" id=16] [ext_resource path="res://player/model/materials/ear.tres" type="Material" id=17] [ext_resource path="res://enemies/bad_cat/model/Colette_Body.material" type="Material" id=18] [sub_resource type="ParticlesMaterial" id=1] 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=2] radius = 0.003 height = 0.02 [sub_resource type="SpatialMaterial" id=3] flags_transparent = true flags_unshaded = true vertex_color_use_as_albedo = true params_cull_mode = 2 albedo_texture = ExtResource( 11 ) [sub_resource type="Gradient" id=4] 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=42] gradient = SubResource( 4 ) width = 32 [sub_resource type="Curve" id=6] _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=43] width = 64 curve = SubResource( 6 ) [sub_resource type="ParticlesMaterial" id=8] gravity = Vector3( 0, 0, 0 ) angle = -4.0 angle_random = 1.0 scale = 0.3 scale_curve = SubResource( 43 ) color_ramp = SubResource( 42 ) [sub_resource type="CapsuleShape" id=41] radius = 0.253575 height = 0.808991 [sub_resource type="AnimationNodeBlend2" id=69] filter_enabled = true filters = [ "Colette_Armature/Skeleton:ElbowF.R", "Colette_Armature/Skeleton:ElbowM.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" ] [sub_resource type="AnimationNodeAnimation" id=39] animation = "idle-loop" [sub_resource type="AnimationNodeAnimation" id=70] animation = "idle-loop" [sub_resource type="AnimationNodeTransition" id=68] input_count = 2 xfade_time = 0.2 input_0/name = "idle" input_0/auto_advance = false input_1/name = "aim" input_1/auto_advance = false [sub_resource type="AnimationNodeAnimation" id=67] animation = "aim_pistol-loop" [sub_resource type="AnimationNodeTransition" id=49] resource_local_to_scene = true input_count = 3 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 [sub_resource type="AnimationNodeAnimation" id=71] animation = "walking-cycle-loop" [sub_resource type="AnimationNodeAnimation" id=72] animation = "walking-cycle-loop" [sub_resource type="AnimationNodeAnimation" id=73] animation = "walking-cycle-loop" [sub_resource type="AnimationNodeAnimation" id=74] animation = "run-cycle-loop" [sub_resource type="AnimationNodeAnimation" id=79] animation = "idle-loop" [sub_resource type="AnimationNodeBlendSpace2D" id=55] resource_local_to_scene = true blend_point_0/node = SubResource( 71 ) blend_point_0/pos = Vector2( -1, 0 ) blend_point_1/node = SubResource( 72 ) blend_point_1/pos = Vector2( 0, -1 ) blend_point_2/node = SubResource( 73 ) blend_point_2/pos = Vector2( 1, 0 ) blend_point_3/node = SubResource( 74 ) blend_point_3/pos = Vector2( 0, 1 ) blend_point_4/node = SubResource( 79 ) blend_point_4/pos = Vector2( 0, 0 ) [sub_resource type="AnimationNodeAnimation" id=76] animation = "run-cycle-loop" [sub_resource type="AnimationNodeAnimation" id=78] animation = "walking_gun-cycle" [sub_resource type="AnimationNodeAnimation" id=80] animation = "idle-loop" [sub_resource type="AnimationNodeBlendSpace2D" id=60] resource_local_to_scene = true blend_point_0/node = SubResource( 76 ) blend_point_0/pos = Vector2( 1, 0 ) blend_point_1/node = SubResource( 78 ) blend_point_1/pos = Vector2( 0, 1 ) blend_point_2/node = SubResource( 80 ) blend_point_2/pos = Vector2( 0, 0 ) min_space = Vector2( 0, 0 ) x_label = "speed" y_label = "gun" [sub_resource type="AnimationNodeBlendTree" id=30] resource_local_to_scene = true graph_offset = Vector2( -937.444, 37.3194 ) nodes/Blend2/node = SubResource( 69 ) nodes/Blend2/position = Vector2( 460, 80 ) nodes/idle/node = SubResource( 39 ) nodes/idle/position = Vector2( -340, -20 ) nodes/idle1/node = SubResource( 70 ) nodes/idle1/position = Vector2( 20, -140 ) nodes/idle_aim/node = SubResource( 68 ) nodes/idle_aim/position = Vector2( 220, -80 ) nodes/output/position = Vector2( 760, 120 ) nodes/shoot_pose/node = SubResource( 67 ) nodes/shoot_pose/position = Vector2( -20, -20 ) nodes/state/node = SubResource( 49 ) nodes/state/position = Vector2( -80, 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", "output", 0, "Blend2", "Blend2", 0, "state", "Blend2", 1, "idle_aim", "idle_aim", 0, "idle1", "idle_aim", 1, "shoot_pose" ] [sub_resource type="CapsuleShape" id=64] radius = 0.68932 height = 0.002 [sub_resource type="AudioStreamRandomPitch" id=35] audio_stream = ExtResource( 7 ) [sub_resource type="AudioStreamRandomPitch" id=38] audio_stream = ExtResource( 3 ) [sub_resource type="SphereShape" id=36] radius = 20.0 [sub_resource type="PrismMesh" id=37] [node name="BadCat" type="KinematicBody"] collision_layer = 4 collision_mask = 23 script = ExtResource( 1 ) [node name="PlayerModel" parent="." instance=ExtResource( 13 )] [node name="GunBone" type="BoneAttachment" parent="PlayerModel/Colette_Armature/Skeleton" index="0"] transform = Transform( -0.0209218, -0.185609, -0.982401, 0.0101222, -0.982548, 0.185422, -0.999672, -0.00606411, 0.0224358, -0.201483, 0.742031, -0.0377114 ) bone_name = "Hand.R" [node name="ShootFrom" type="Position3D" parent="PlayerModel/Colette_Armature/Skeleton/GunBone"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0 ) [node name="ShootParticle" type="Particles" parent="PlayerModel/Colette_Armature/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( 9 ) emitting = false amount = 10 lifetime = 0.3 one_shot = true explosiveness = 0.79 local_coords = false process_material = SubResource( 1 ) draw_pass_1 = SubResource( 2 ) [node name="MuzzleFlash" type="Particles" parent="PlayerModel/Colette_Armature/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( 3 ) emitting = false amount = 1 lifetime = 0.1 one_shot = true explosiveness = 1.0 process_material = SubResource( 8 ) draw_pass_1 = ExtResource( 10 ) [node name="ChestBone" type="BoneAttachment" parent="PlayerModel/Colette_Armature/Skeleton" index="1"] transform = Transform( 1, 9.83052e-08, -4.4973e-07, -9.24421e-08, 0.998489, -0.0538833, 3.5868e-07, 0.0538833, 0.998489, 6.63939e-09, 1.00081, 0.0376625 ) bone_name = "Chest" [node name="Hitbox" type="KinematicBody" parent="PlayerModel/Colette_Armature/Skeleton/ChestBone"] transform = Transform( 0.697, 4.07329e-05, 0.000196172, -2.55566e-05, 1.19195, 0.00618147, -0.000195948, -0.0105715, 0.696972, -7.45737e-05, -0.195816, -0.0145013 ) collision_layer = 64 collision_mask = 0 script = ExtResource( 16 ) node_with_hit = NodePath("../../../../..") [node name="CollisionShape" type="CollisionShape" parent="PlayerModel/Colette_Armature/Skeleton/ChestBone/Hitbox"] transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) shape = SubResource( 41 ) [node name="Colette_Mesh" parent="PlayerModel/Colette_Armature/Skeleton" index="2"] material/0 = ExtResource( 12 ) material/1 = ExtResource( 12 ) material/2 = ExtResource( 2 ) material/3 = ExtResource( 18 ) material/4 = ExtResource( 17 ) material/5 = ExtResource( 14 ) material/6 = ExtResource( 15 ) [node name="RootMotionView" type="RootMotionView" parent="."] animation_path = NodePath("../AnimationTree") [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource( 30 ) anim_player = NodePath("../PlayerModel/AnimationPlayer") active = true process_mode = 0 root_motion_track = NodePath("Colette_Armature/Skeleton:Root") parameters/Blend2/blend_amount = 1.0 parameters/idle_aim/current = 0 parameters/state/current = 0 parameters/strafe/blend_position = Vector2( 0, 0 ) parameters/walk/blend_position = Vector2( 0, 0 ) [node name="CapsuleShape" type="CollisionShape" parent="."] transform = Transform( 0.999835, 0.0162343, -0.00821726, 0.0079643, 0.0155836, 0.999847, 0.0163598, -0.999747, 0.0154518, 0, 0.701, 0 ) shape = SubResource( 64 ) [node name="SoundEffects" type="Node" parent="."] [node name="Step" type="AudioStreamPlayer" parent="SoundEffects"] stream = ExtResource( 4 ) [node name="Jump" type="AudioStreamPlayer" parent="SoundEffects"] stream = ExtResource( 5 ) [node name="Land" type="AudioStreamPlayer" parent="SoundEffects"] stream = ExtResource( 6 ) [node name="Shoot" type="AudioStreamPlayer" parent="SoundEffects"] stream = SubResource( 35 ) [node name="Explosion" type="AudioStreamPlayer3D" parent="SoundEffects"] stream = ExtResource( 8 ) unit_db = 12.0 unit_size = 15.0 [node name="Hit" type="AudioStreamPlayer3D" parent="SoundEffects"] stream = SubResource( 38 ) unit_db = 3.0 unit_size = 15.0 [node name="FireCooldown" type="Timer" parent="."] wait_time = 0.4 one_shot = true autostart = true [node name="PlayerDetectionArea" type="Area" parent="."] collision_layer = 2 collision_mask = 2 [node name="CollisionShape" type="CollisionShape" parent="PlayerDetectionArea"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00589287, -1.19209e-07, 0.000506759 ) shape = SubResource( 36 ) [node name="debug_marker" type="MeshInstance" parent="."] transform = Transform( 0.245, 0, 0, 0, 0.205, 0, 0, 0, 0.115, 0, 0, 3.06692 ) visible = false mesh = SubResource( 37 ) material/0 = null [connection signal="body_entered" from="PlayerDetectionArea" to="." method="_on_Area_body_entered"] [connection signal="body_exited" from="PlayerDetectionArea" to="." method="_on_Area_body_exited"] [editable path="PlayerModel"]