diff --git a/components/Bullets/HXD.tscn b/components/Bullets/HXD.tscn index d477d00..1d71291 100644 --- a/components/Bullets/HXD.tscn +++ b/components/Bullets/HXD.tscn @@ -43,7 +43,7 @@ penerate = 1.0 lifeTime = 5000.0 [node name="texture" parent="." index="0"] -scale = Vector2(0.185, 0.185) +scale = Vector2(0.2, 0.2) sprite_frames = SubResource("SpriteFrames_lskjb") animation = &"2" diff --git a/components/Effects/HXDBoom.tscn b/components/Effects/HXDBoom.tscn new file mode 100644 index 0000000..2e32c20 --- /dev/null +++ b/components/Effects/HXDBoom.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=9 format=3 uid="uid://c0oppv5v8grnu"] + +[ext_resource type="PackedScene" uid="uid://bcvuuy2m0pke0" path="res://components/Abstracts/EffectBase.tscn" id="1_41cv2"] +[ext_resource type="Script" uid="uid://bxvgpyb3fyko1" path="res://scripts/Contents/Effects/HXDBoom.gd" id="2_uo6a0"] +[ext_resource type="Texture2D" uid="uid://ctvlwl62ieuu6" path="res://resources/bullets/HXD/effect/4.png" id="3_4u6cx"] + +[sub_resource type="Curve" id="Curve_4u6cx"] +_data = [Vector2(0.5, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_rt83h"] +curve = SubResource("Curve_4u6cx") + +[sub_resource type="Curve" id="Curve_l6ml7"] +_data = [Vector2(0.75, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_tkfx4"] +curve = SubResource("Curve_l6ml7") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4u6cx"] +particle_flag_disable_z = true +spread = 180.0 +initial_velocity_min = 50.0 +initial_velocity_max = 100.0 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_tkfx4") +alpha_curve = SubResource("CurveTexture_rt83h") + +[node name="HXDBoom" instance=ExtResource("1_41cv2")] +script = ExtResource("2_uo6a0") + +[node name="particles" parent="." index="1"] +amount = 1 +texture = ExtResource("3_4u6cx") +local_coords = true +process_material = SubResource("ParticleProcessMaterial_4u6cx") diff --git a/resources/bullets/HXD/effect/0.png b/resources/bullets/HXD/effect/0.png new file mode 100644 index 0000000..5828959 Binary files /dev/null and b/resources/bullets/HXD/effect/0.png differ diff --git a/resources/bullets/HXD/effect/0.png.import b/resources/bullets/HXD/effect/0.png.import new file mode 100644 index 0000000..219ed53 --- /dev/null +++ b/resources/bullets/HXD/effect/0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8og0letgrspa" +path="res://.godot/imported/0.png-2905c23aa6392c053e62e5de00b70feb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/bullets/HXD/effect/0.png" +dest_files=["res://.godot/imported/0.png-2905c23aa6392c053e62e5de00b70feb.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/bullets/HXD/effect/1.png b/resources/bullets/HXD/effect/1.png new file mode 100644 index 0000000..fd05617 Binary files /dev/null and b/resources/bullets/HXD/effect/1.png differ diff --git a/resources/bullets/HXD/effect/1.png.import b/resources/bullets/HXD/effect/1.png.import new file mode 100644 index 0000000..31e8b25 --- /dev/null +++ b/resources/bullets/HXD/effect/1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bl1pbrklnqg7u" +path="res://.godot/imported/1.png-ac079a3f4ec1f5c001ff0b50a5e0b93f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/bullets/HXD/effect/1.png" +dest_files=["res://.godot/imported/1.png-ac079a3f4ec1f5c001ff0b50a5e0b93f.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/bullets/HXD/effect/2.png b/resources/bullets/HXD/effect/2.png new file mode 100644 index 0000000..3717cbd Binary files /dev/null and b/resources/bullets/HXD/effect/2.png differ diff --git a/resources/bullets/HXD/effect/2.png.import b/resources/bullets/HXD/effect/2.png.import new file mode 100644 index 0000000..bf76337 --- /dev/null +++ b/resources/bullets/HXD/effect/2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnn5sqecb7pke" +path="res://.godot/imported/2.png-c18e448b7d9210ef47c0212579d09c03.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/bullets/HXD/effect/2.png" +dest_files=["res://.godot/imported/2.png-c18e448b7d9210ef47c0212579d09c03.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/bullets/HXD/effect/3.png b/resources/bullets/HXD/effect/3.png new file mode 100644 index 0000000..43e00f6 Binary files /dev/null and b/resources/bullets/HXD/effect/3.png differ diff --git a/resources/bullets/HXD/effect/3.png.import b/resources/bullets/HXD/effect/3.png.import new file mode 100644 index 0000000..010a9ff --- /dev/null +++ b/resources/bullets/HXD/effect/3.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1ify58chqj7n" +path="res://.godot/imported/3.png-abf0d1ef96a3d6f28f64c3b4f6045ee7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/bullets/HXD/effect/3.png" +dest_files=["res://.godot/imported/3.png-abf0d1ef96a3d6f28f64c3b4f6045ee7.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/bullets/HXD/effect/4.png b/resources/bullets/HXD/effect/4.png new file mode 100644 index 0000000..d5a54fc Binary files /dev/null and b/resources/bullets/HXD/effect/4.png differ diff --git a/resources/bullets/HXD/effect/4.png.import b/resources/bullets/HXD/effect/4.png.import new file mode 100644 index 0000000..835f1d0 --- /dev/null +++ b/resources/bullets/HXD/effect/4.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctvlwl62ieuu6" +path="res://.godot/imported/4.png-638cb78e7f9c0dd2573ef68a9092629a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/bullets/HXD/effect/4.png" +dest_files=["res://.godot/imported/4.png-638cb78e7f9c0dd2573ef68a9092629a.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/Contents/Bullets/HXD.gd b/scripts/Contents/Bullets/HXD.gd index 4c872b8..20884fb 100644 --- a/scripts/Contents/Bullets/HXD.gd +++ b/scripts/Contents/Bullets/HXD.gd @@ -14,6 +14,7 @@ func succeedToHit(_dmg: float, entity: EntityBase): if is_instance_valid(newEntity): look_at(newEntity.position) bouncedTime += 1 + EffectController.create(ComponentManager.getEffect("HXDBoom"), position).shot() func split(newBullet: BulletBase, _index: int, _total: int, _lastBullet: float): if newBullet is HXDBullet: newBullet.bouncedTime = 0 diff --git a/scripts/Contents/Effects/HXDBoom.gd b/scripts/Contents/Effects/HXDBoom.gd new file mode 100644 index 0000000..19bfa06 --- /dev/null +++ b/scripts/Contents/Effects/HXDBoom.gd @@ -0,0 +1,4 @@ +extends EffectController + +func register(): + particles.texture = load("res://resources/bullets/HXD/effect/%d.png" % randi_range(0, 4)) diff --git a/scripts/Contents/Effects/HXDBoom.gd.uid b/scripts/Contents/Effects/HXDBoom.gd.uid new file mode 100644 index 0000000..80bf291 --- /dev/null +++ b/scripts/Contents/Effects/HXDBoom.gd.uid @@ -0,0 +1 @@ +uid://bxvgpyb3fyko1 diff --git a/scripts/Statemachine/EffectController.gd b/scripts/Statemachine/EffectController.gd index 2cc0ecb..dcfc1ae 100644 --- a/scripts/Statemachine/EffectController.gd +++ b/scripts/Statemachine/EffectController.gd @@ -10,6 +10,7 @@ class_name EffectController @onready var animator: AnimationPlayer = $"%animator" func _ready(): + register() particles.emitting = false particles.one_shot = oneShot var sound = sounds.get_node_or_null(spawnSound) @@ -30,6 +31,9 @@ func shot(): await sound.finished queue_free() +func register(): + pass + static func create(scene: PackedScene, spawnPosition: Vector2, parent: Node = null) -> EffectController: var cloned = scene.instantiate() as EffectController cloned.global_position = spawnPosition