[gd_scene load_steps=27 format=3 uid="uid://d1d4vg7we5rjr"] [ext_resource type="Script" path="res://Items/Weapons/ProjectileSpawner.cs" id="1_4xyyt"] [ext_resource type="Script" path="res://State/Weapon/WeaponStateMachine.cs" id="2_ag6rd"] [ext_resource type="PackedScene" uid="uid://da1do2r2pbayb" path="res://Entities/ShotgunPellet.tscn" id="2_p3wx2"] [ext_resource type="Script" path="res://State/Weapon/RangedIdleState.cs" id="3_dd6bh"] [ext_resource type="Resource" uid="uid://dkm216ug0vj2h" path="res://Items/Weapons/Shotgun.tres" id="3_ju036"] [ext_resource type="Script" path="res://State/Weapon/RangedFireState.cs" id="4_bwqd6"] [ext_resource type="Texture2D" uid="uid://b1omx2kdb2x1n" path="res://Assets/Sprites/Items/shotgun.png" id="5_g8d45"] [ext_resource type="Texture2D" uid="uid://c1a7lvb4uuwfy" path="res://Assets/Sprites/Particles/circle-16.png" id="6_va8ee"] [ext_resource type="AudioStream" uid="uid://5fybh24xashp" path="res://Assets/Sounds/shotgun.wav" id="7_ucxp5"] [ext_resource type="AudioStream" uid="uid://cb5olv6rxm4f1" path="res://Assets/Sounds/shotgun-cycle.wav" id="8_sfyq7"] [ext_resource type="Texture2D" uid="uid://coarr28adgo1u" path="res://Assets/Sprites/Particles/point-light.png" id="9_xrus5"] [ext_resource type="Texture2D" uid="uid://25euyff77a4d" path="res://Assets/Sprites/Misc/shell.png" id="10_vu81g"] [ext_resource type="Script" path="res://Utils/CloneableParticles.cs" id="10_vx4wq"] [sub_resource type="CanvasTexture" id="CanvasTexture_wvatk"] [sub_resource type="Animation" id="Animation_vijrc"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Anchor:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Anchor:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PointLight2D:enabled") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } [sub_resource type="Animation" id="Animation_i0e06"] resource_name = "fire" length = 1.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Anchor:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [Vector2(-4, 0), Vector2(0, 0)] } tracks/1/type = "audio" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("AudioStreamPlayer2D") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "clips": [{ "end_offset": 1.04, "start_offset": 0.0, "stream": ExtResource("7_ucxp5") }], "times": PackedFloat32Array(0) } tracks/1/use_blend = true tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Anchor:rotation") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1, 1.5), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [6.28319, 6.28319, 0.0] } tracks/3/type = "audio" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("AudioStreamPlayer2D2") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "clips": [{ "end_offset": 0.15, "start_offset": 0.0, "stream": ExtResource("8_sfyq7") }], "times": PackedFloat32Array(1) } tracks/3/use_blend = true tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("ShellParticles:emitting") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(1.1), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } tracks/5/type = "method" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("ShellParticles") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(1), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"restart" }] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("PointLight2D:enabled") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } tracks/7/type = "method" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("GPUParticles2D") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"EmitOnWorld" }] } [sub_resource type="Animation" id="Animation_sqn2o"] resource_name = "idle" length = 0.1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Anchor:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(0, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Anchor:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_si0kh"] _data = { "RESET": SubResource("Animation_vijrc"), "fire": SubResource("Animation_i0e06"), "idle": SubResource("Animation_sqn2o") } [sub_resource type="Gradient" id="Gradient_uphon"] offsets = PackedFloat32Array(0, 0.237037, 1) colors = PackedColorArray(2, 1.8, 1.25, 1, 1, 1, 1, 0.498039, 1, 1, 1, 0) [sub_resource type="GradientTexture1D" id="GradientTexture1D_83h4s"] gradient = SubResource("Gradient_uphon") [sub_resource type="Curve" id="Curve_mqgo6"] _data = [Vector2(0, 0.8), 0.0, 0.0, 0, 0, Vector2(0.7, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.9), 0.0, 0.0, 0, 0] point_count = 3 [sub_resource type="CurveTexture" id="CurveTexture_3omj5"] curve = SubResource("Curve_mqgo6") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_uexo4"] particle_flag_disable_z = true flatness = 1.0 initial_velocity_min = -8.0 initial_velocity_max = 24.0 gravity = Vector3(0, -4, 0) scale_min = 0.75 scale_curve = SubResource("CurveTexture_3omj5") color_ramp = SubResource("GradientTexture1D_83h4s") [sub_resource type="Gradient" id="Gradient_jks7f"] offsets = PackedFloat32Array(0, 0.5, 1) colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) [sub_resource type="GradientTexture1D" id="GradientTexture1D_eeskk"] gradient = SubResource("Gradient_jks7f") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_rta5n"] particle_flag_disable_z = true direction = Vector3(-1, -2, 0) spread = 10.0 initial_velocity_min = 16.0 initial_velocity_max = 32.0 angular_velocity_min = 30.0 angular_velocity_max = 60.0 gravity = Vector3(0, 64, 0) scale_min = 2.0 scale_max = 2.0 color_ramp = SubResource("GradientTexture1D_eeskk") [node name="Shotgun" type="Node2D" node_paths=PackedStringArray("StateMachine")] y_sort_enabled = true script = ExtResource("1_4xyyt") Projectile = ExtResource("2_p3wx2") ProjectileCount = 3 ProjectileAngleDeviation = 10.0 CharacterRecoil = 128.0 StateMachine = NodePath("State") Damage = 12.0 UseTime = 1.5 InitialVelocity = 220.0 PlayerLevelGain = 0.5 Metadata = ExtResource("3_ju036") [node name="State" type="Node" parent="." node_paths=PackedStringArray("InitialState")] script = ExtResource("2_ag6rd") InitialState = NodePath("Idle") [node name="Idle" type="Node" parent="State" node_paths=PackedStringArray("FireState", "Weapon", "AnimationPlayer")] script = ExtResource("3_dd6bh") FireState = NodePath("../Fire") Weapon = NodePath("../..") AnimationPlayer = NodePath("../../AnimationPlayer") AnimationKey = "idle" [node name="Fire" type="Node" parent="State" node_paths=PackedStringArray("Weapon", "IdleState", "AnimationPlayer")] script = ExtResource("4_bwqd6") Weapon = NodePath("../..") IdleState = NodePath("../Idle") AnimationPlayer = NodePath("../../AnimationPlayer") AnimationKey = "fire" [node name="Anchor" type="Node2D" parent="."] y_sort_enabled = true [node name="Sprite2D" type="Sprite2D" parent="Anchor"] y_sort_enabled = true texture_filter = 1 position = Vector2(4.00001, 5.99998) texture = ExtResource("5_g8d45") centered = false offset = Vector2(-4, -10) [node name="Marker2D" type="Marker2D" parent="Anchor"] [node name="YSortHint" type="Sprite2D" parent="Anchor"] visible = false position = Vector2(4.00001, 5.99998) texture = SubResource("CanvasTexture_wvatk") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { "": SubResource("AnimationLibrary_si0kh") } [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] volume_db = -2.0 max_distance = 256.0 bus = &"Effects" [node name="AudioStreamPlayer2D2" type="AudioStreamPlayer2D" parent="."] max_distance = 256.0 bus = &"Effects" [node name="GPUParticles2D" type="GPUParticles2D" parent="."] position = Vector2(17, -3) emitting = false process_material = SubResource("ParticleProcessMaterial_uexo4") texture = ExtResource("6_va8ee") lifetime = 3.0 one_shot = true preprocess = 0.1 explosiveness = 1.0 script = ExtResource("10_vx4wq") [node name="ShellParticles" type="GPUParticles2D" parent="."] position = Vector2(3, 0) emitting = false amount = 1 process_material = SubResource("ParticleProcessMaterial_rta5n") texture = ExtResource("10_vu81g") one_shot = true explosiveness = 1.0 [node name="PointLight2D" type="PointLight2D" parent="."] position = Vector2(8, 8) enabled = false color = Color(0.941176, 0.843137, 0.470588, 1) energy = 0.25 texture = ExtResource("9_xrus5") texture_scale = 0.25