diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 1347452..2822ee2 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -38,24 +38,24 @@
- {
+ "keyToString": {
+ "GdScript Start and Debug.Player GDScript.executor": "Debug",
+ "Notification.DisplayName-DoNotAsk-GodotSupportNotificationGroupId": "Godot LSP",
+ "Notification.DoNotAsk-GodotSupportNotificationGroupId": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "gdscript.promo.shown": "true",
+ "git-widget-placeholder": "range__weapons",
+ "ignore.virus.scanning.warn.message": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "settings.editor.selected.configurable": "preferences.pluginManager",
+ "vue.rearranger.settings.migration": "true"
}
-}]]>
+}
@@ -68,9 +68,9 @@
-
+
-
+
diff --git a/packed-scenes/explosion.tscn b/packed-scenes/explosion.tscn
new file mode 100644
index 0000000..42054fd
--- /dev/null
+++ b/packed-scenes/explosion.tscn
@@ -0,0 +1,158 @@
+[gd_scene load_steps=25 format=3 uid="uid://bghvnlgw38u36"]
+
+[ext_resource type="Texture2D" uid="uid://dbnd1vcuspur6" path="res://resources/material/Flare00.PNG" id="1_43d4l"]
+[ext_resource type="Script" uid="uid://cboednqvxqr16" path="res://scripts/explosion.gd" id="1_wy7bv"]
+[ext_resource type="Material" uid="uid://cja5e1ei7iwo1" path="res://resources/material/Flare00.tres" id="2_i2mvw"]
+
+[sub_resource type="Curve" id="Curve_i2mvw"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="Curve" id="Curve_wy7bv"]
+_limits = [0.0, 1.0, 0.0, 5.0]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="Curve" id="Curve_fp6pc"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 2
+
+[sub_resource type="CurveXYZTexture" id="CurveXYZTexture_bdcc7"]
+curve_x = SubResource("Curve_i2mvw")
+curve_y = SubResource("Curve_wy7bv")
+curve_z = SubResource("Curve_fp6pc")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_43d4l"]
+particle_flag_align_y = true
+emission_shape = 1
+emission_sphere_radius = 0.2
+spread = 180.0
+initial_velocity_min = 20.0
+initial_velocity_max = 25.0
+scale_min = 0.14999999
+scale_max = 0.5
+scale_curve = SubResource("CurveXYZTexture_bdcc7")
+color = Color(2.007956, 1.3532561, 1.0000001, 1)
+
+[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hun3i"]
+transparency = 1
+cull_mode = 2
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = ExtResource("1_43d4l")
+
+[sub_resource type="QuadMesh" id="QuadMesh_m7yp3"]
+material = SubResource("StandardMaterial3D_hun3i")
+
+[sub_resource type="Curve" id="Curve_8rfqs"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.33695656, 0.84883726), -1.8004575, -1.8004575, 0, 0, Vector2(0.70652175, 0.08357561), -0.70474494, -0.70474494, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 4
+
+[sub_resource type="CurveTexture" id="CurveTexture_jdut6"]
+curve = SubResource("Curve_8rfqs")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_wy7bv"]
+gravity = Vector3(0, 0, 0)
+scale_min = 4.0
+scale_max = 4.0
+scale_curve = SubResource("CurveTexture_jdut6")
+color = Color(2.5, 1, 1, 1)
+
+[sub_resource type="QuadMesh" id="QuadMesh_fp6pc"]
+material = ExtResource("2_i2mvw")
+
+[sub_resource type="Gradient" id="Gradient_bdcc7"]
+colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
+
+[sub_resource type="GradientTexture1D" id="GradientTexture1D_hun3i"]
+gradient = SubResource("Gradient_bdcc7")
+
+[sub_resource type="Curve" id="Curve_m7yp3"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.6702899, 0.69767445), -1.5899744, -1.5899744, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 3
+
+[sub_resource type="CurveTexture" id="CurveTexture_8rfqs"]
+curve = SubResource("Curve_m7yp3")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ft63g"]
+lifetime_randomness = 1.0
+emission_shape = 1
+emission_sphere_radius = 0.4
+spread = 180.0
+initial_velocity_min = 0.5
+initial_velocity_max = 2.0
+gravity = Vector3(0, -2, 0)
+scale_min = 0.75
+scale_max = 1.5
+scale_curve = SubResource("CurveTexture_8rfqs")
+color = Color(2.007956, 1.3532561, 1.0000001, 1)
+color_ramp = SubResource("GradientTexture1D_hun3i")
+
+[sub_resource type="QuadMesh" id="QuadMesh_1ka78"]
+material = ExtResource("2_i2mvw")
+
+[sub_resource type="Curve" id="Curve_jdut6"]
+_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.6884058, 0.7543605), -1.3037789, -1.3037789, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
+point_count = 3
+
+[sub_resource type="CurveTexture" id="CurveTexture_j4oj5"]
+curve = SubResource("Curve_jdut6")
+
+[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_231kw"]
+lifetime_randomness = 0.5
+emission_shape = 1
+emission_sphere_radius = 0.4
+spread = 180.0
+initial_velocity_min = 0.5
+initial_velocity_max = 2.0
+gravity = Vector3(0, 0, 0)
+scale_min = 3.0
+scale_max = 4.0
+scale_curve = SubResource("CurveTexture_j4oj5")
+color = Color(0, 0, 0, 1)
+
+[sub_resource type="QuadMesh" id="QuadMesh_it615"]
+material = ExtResource("2_i2mvw")
+
+[node name="Explosion" type="Node3D"]
+script = ExtResource("1_wy7bv")
+
+[node name="Sparks" type="GPUParticles3D" parent="."]
+emitting = false
+amount = 20
+lifetime = 0.6
+one_shot = true
+explosiveness = 1.0
+fixed_fps = 60
+process_material = SubResource("ParticleProcessMaterial_43d4l")
+draw_pass_1 = SubResource("QuadMesh_m7yp3")
+
+[node name="Flash" type="GPUParticles3D" parent="."]
+emitting = false
+amount = 1
+lifetime = 0.1
+one_shot = true
+explosiveness = 1.0
+fixed_fps = 60
+process_material = SubResource("ParticleProcessMaterial_wy7bv")
+draw_pass_1 = SubResource("QuadMesh_fp6pc")
+
+[node name="Fire" type="GPUParticles3D" parent="."]
+emitting = false
+amount = 13
+lifetime = 0.55
+one_shot = true
+explosiveness = 1.0
+fixed_fps = 60
+process_material = SubResource("ParticleProcessMaterial_ft63g")
+draw_pass_1 = SubResource("QuadMesh_1ka78")
+
+[node name="Smoke" type="GPUParticles3D" parent="."]
+emitting = false
+amount = 10
+lifetime = 0.8
+one_shot = true
+explosiveness = 1.0
+fixed_fps = 60
+process_material = SubResource("ParticleProcessMaterial_231kw")
+draw_pass_1 = SubResource("QuadMesh_it615")
diff --git a/resources/material/Circle03.png b/resources/material/Circle03.png
new file mode 100644
index 0000000..1e308ff
Binary files /dev/null and b/resources/material/Circle03.png differ
diff --git a/resources/material/Circle03.png.import b/resources/material/Circle03.png.import
new file mode 100644
index 0000000..b02d924
--- /dev/null
+++ b/resources/material/Circle03.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://7yoobjfmk8kf"
+path="res://.godot/imported/Circle03.png-43b60928054a4d97db0d01c62e7733b0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/material/Circle03.png"
+dest_files=["res://.godot/imported/Circle03.png-43b60928054a4d97db0d01c62e7733b0.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/resources/material/Flare00.PNG b/resources/material/Flare00.PNG
new file mode 100644
index 0000000..737d8b5
Binary files /dev/null and b/resources/material/Flare00.PNG differ
diff --git a/resources/material/Flare00.PNG.import b/resources/material/Flare00.PNG.import
new file mode 100644
index 0000000..5af4131
--- /dev/null
+++ b/resources/material/Flare00.PNG.import
@@ -0,0 +1,41 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dbnd1vcuspur6"
+path.s3tc="res://.godot/imported/Flare00.PNG-5958d5567875bea885a0cec9a80d2cba.s3tc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://resources/material/Flare00.PNG"
+dest_files=["res://.godot/imported/Flare00.PNG-5958d5567875bea885a0cec9a80d2cba.s3tc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/resources/material/Flare00.tres b/resources/material/Flare00.tres
new file mode 100644
index 0000000..ec6b3d7
--- /dev/null
+++ b/resources/material/Flare00.tres
@@ -0,0 +1,14 @@
+[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cja5e1ei7iwo1"]
+
+[ext_resource type="Texture2D" uid="uid://dbnd1vcuspur6" path="res://resources/material/Flare00.PNG" id="1_7lsim"]
+
+[resource]
+transparency = 1
+cull_mode = 2
+shading_mode = 0
+vertex_color_use_as_albedo = true
+albedo_texture = ExtResource("1_7lsim")
+billboard_mode = 3
+particles_anim_h_frames = 1
+particles_anim_v_frames = 1
+particles_anim_loop = false
diff --git a/resources/material/Flare01.png b/resources/material/Flare01.png
new file mode 100644
index 0000000..739a210
Binary files /dev/null and b/resources/material/Flare01.png differ
diff --git a/resources/material/Flare01.png.import b/resources/material/Flare01.png.import
new file mode 100644
index 0000000..b3b1631
--- /dev/null
+++ b/resources/material/Flare01.png.import
@@ -0,0 +1,40 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cg6ebd6a61nb8"
+path="res://.godot/imported/Flare01.png-34bc80d68045f6df66401c2559255f51.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resources/material/Flare01.png"
+dest_files=["res://.godot/imported/Flare01.png-34bc80d68045f6df66401c2559255f51.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/scripts/explosion.gd b/scripts/explosion.gd
new file mode 100644
index 0000000..c426b78
--- /dev/null
+++ b/scripts/explosion.gd
@@ -0,0 +1,8 @@
+extends Node3D
+class_name Explosion
+
+@onready var particle_systems := get_children()
+
+func start() -> void:
+ for particle_system in particle_systems:
+ particle_system.emitting = true
diff --git a/scripts/explosion.gd.uid b/scripts/explosion.gd.uid
new file mode 100644
index 0000000..0581470
--- /dev/null
+++ b/scripts/explosion.gd.uid
@@ -0,0 +1 @@
+uid://cboednqvxqr16