Stop animations when enemy dies, fix pixel melt issue (was melting all of the elemental damage effects too)
This commit is contained in:
@@ -26,6 +26,7 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView
|
|||||||
[Node] public AnimationPlayer WaterHitAnimation { get; set; } = default!;
|
[Node] public AnimationPlayer WaterHitAnimation { get; set; } = default!;
|
||||||
[Node] public AnimationPlayer CurseHitAnimation { get; set; } = default!;
|
[Node] public AnimationPlayer CurseHitAnimation { get; set; } = default!;
|
||||||
[Node] public AnimationPlayer EarthHitAnimation { get; set; } = default!;
|
[Node] public AnimationPlayer EarthHitAnimation { get; set; } = default!;
|
||||||
|
[Node] public Node2D VFXSprites { get; set; } = default!;
|
||||||
|
|
||||||
[ExportGroup("Enemy Model Properties")]
|
[ExportGroup("Enemy Model Properties")]
|
||||||
[Export(PropertyHint.Range, "0.0, 1.0")]
|
[Export(PropertyHint.Range, "0.0, 1.0")]
|
||||||
@@ -60,7 +61,9 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView
|
|||||||
|
|
||||||
public override void PlayDeathAnimation()
|
public override void PlayDeathAnimation()
|
||||||
{
|
{
|
||||||
|
_stateMachine.Stop();
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
|
VFXSprites.Hide();
|
||||||
LoadShader("res://src/vfx/shaders/PixelMelt.gdshader");
|
LoadShader("res://src/vfx/shaders/PixelMelt.gdshader");
|
||||||
var tweener = GetTree().CreateTween();
|
var tweener = GetTree().CreateTween();
|
||||||
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 0.1f, 0.8f);
|
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 0.1f, 0.8f);
|
||||||
|
|||||||
@@ -3884,6 +3884,7 @@ sprite_frames = SubResource("SpriteFrames_6drt6")
|
|||||||
animation = &"idle_left_walk"
|
animation = &"idle_left_walk"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -4389,6 +4389,7 @@ animation = &"idle_front_walk"
|
|||||||
offset = Vector2(400, 400)
|
offset = Vector2(400, 400)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5888,6 +5888,7 @@ sprite_frames = SubResource("SpriteFrames_673a4")
|
|||||||
animation = &"idle_back_walk"
|
animation = &"idle_back_walk"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5028,6 +5028,7 @@ sprite_frames = SubResource("SpriteFrames_sobol")
|
|||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -4732,6 +4732,7 @@ animation = &"idle_front_walk"
|
|||||||
offset = Vector2(400, 400)
|
offset = Vector2(400, 400)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5936,6 +5936,7 @@ animation = &"Idle FRONT"
|
|||||||
offset = Vector2(402.745, 400)
|
offset = Vector2(402.745, 400)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -6698,6 +6698,7 @@ animation = &"idle_front_walk"
|
|||||||
offset = Vector2(500, 500)
|
offset = Vector2(500, 500)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5282,6 +5282,7 @@ sprite_frames = SubResource("SpriteFrames_6drt6")
|
|||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
+1
@@ -5258,6 +5258,7 @@ sprite_frames = SubResource("SpriteFrames_6drt6")
|
|||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
+1
@@ -5371,6 +5371,7 @@ sprite_frames = SubResource("SpriteFrames_6drt6")
|
|||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5331,6 +5331,7 @@ autoplay = "default"
|
|||||||
offset = Vector2(400, 375)
|
offset = Vector2(400, 375)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5505,6 +5505,7 @@ sprite_frames = SubResource("SpriteFrames_sobol")
|
|||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -6637,6 +6637,7 @@ animation = &"idle_front"
|
|||||||
offset = Vector2(200, 200)
|
offset = Vector2(200, 200)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -3796,6 +3796,7 @@ sprite_frames = SubResource("SpriteFrames_hypby")
|
|||||||
animation = &"idle_left_walk"
|
animation = &"idle_left_walk"
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
texture_filter = 1
|
texture_filter = 1
|
||||||
|
|||||||
@@ -5304,6 +5304,7 @@ autoplay = "default"
|
|||||||
offset = Vector2(400, 375)
|
offset = Vector2(400, 375)
|
||||||
|
|
||||||
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
[node name="VFXSprites" type="Node2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
[node name="Rust Activation Effect" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport/VFXSprites"]
|
||||||
position = Vector2(378.935, 478.985)
|
position = Vector2(378.935, 478.985)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ uniform float meltiness: hint_range(0.0, 16.0) = 1.0;
|
|||||||
|
|
||||||
uniform bool reverse = false;
|
uniform bool reverse = false;
|
||||||
|
|
||||||
float psuedo_rand(float x) {
|
float pseudo_rand(float x) {
|
||||||
return mod(x * 2048103.0 + cos(x * 1912.0), 1.0);
|
return mod(x * 2048103.0 + cos(x * 1912.0), 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ void fragment() {
|
|||||||
uv.y -= progress / UV.y;
|
uv.y -= progress / UV.y;
|
||||||
|
|
||||||
// Created jagged edges for each pixel on the x-axis
|
// Created jagged edges for each pixel on the x-axis
|
||||||
uv.y -= progress * meltiness * psuedo_rand(UV.x - mod(UV.x, TEXTURE_PIXEL_SIZE.x));
|
uv.y -= progress * meltiness * pseudo_rand(UV.x - mod(UV.x, TEXTURE_PIXEL_SIZE.x));
|
||||||
|
|
||||||
COLOR = texture(TEXTURE, uv);
|
COLOR = texture(TEXTURE, uv);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user