Work on vfx and sfx for traps.

This commit is contained in:
2025-12-28 08:59:19 -05:00
parent 55eb37ca74
commit e632e54cba
67 changed files with 1312 additions and 15 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://lyw6lp8xkiy3"
path="res://.godot/imported/button-attack-hit.png-d7e4a89fb392a5df3773a46ec9552aa0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-attack-hit.png"
dest_files=["res://.godot/imported/button-attack-hit.png-d7e4a89fb392a5df3773a46ec9552aa0.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0aggjegou04w"
path="res://.godot/imported/button-attack.png-aae1d515aaf5dd607c4796e9455110fd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-attack.png"
dest_files=["res://.godot/imported/button-attack.png-aae1d515aaf5dd607c4796e9455110fd.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dsvto2ala6jgl"
path="res://.godot/imported/button-detect-hit.png-0a631165f030cd9b654f89a609007a8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-detect-hit.png"
dest_files=["res://.godot/imported/button-detect-hit.png-0a631165f030cd9b654f89a609007a8a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brdlarspo7ich"
path="res://.godot/imported/button-detect.png-a53b247455f18c80703a7530559e9111.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-detect.png"
dest_files=["res://.godot/imported/button-detect.png-a53b247455f18c80703a7530559e9111.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfqi80mmnu1j6"
path="res://.godot/imported/button-detonate-hit.png-bd35e4b2cca0a7d537b0c2469f4ea9fc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-detonate-hit.png"
dest_files=["res://.godot/imported/button-detonate-hit.png-bd35e4b2cca0a7d537b0c2469f4ea9fc.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d36x44m5glyj4"
path="res://.godot/imported/button-detonate.png-b892a099a8ff17f368a4074f57c52b89.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-detonate.png"
dest_files=["res://.godot/imported/button-detonate.png-b892a099a8ff17f368a4074f57c52b89.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://klhragf48bkd"
path="res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-trap-hit.png"
dest_files=["res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://belkk38rxged0"
path="res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-trap.png"
dest_files=["res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.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

View File

@@ -0,0 +1,23 @@
[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://d0igimpfbmiye"]
[ext_resource type="Shader" uid="uid://c4uv1a6c6l4w4" path="res://visuals/shaders/explosion cloud.gdshader" id="1_ucjbd"]
[ext_resource type="Texture2D" uid="uid://c4r0yuw28xqrc" path="res://visuals/textures/explosive_noise.tres" id="2_143bf"]
[ext_resource type="Texture2D" uid="uid://by70e5iuu1n47" path="res://visuals/textures/perlin_seamless.png" id="3_e5im5"]
[sub_resource type="Gradient" id="Gradient_sbr80"]
offsets = PackedFloat32Array(0.30645162, 0.7177419, 1)
colors = PackedColorArray(0.025363795, 0.025363805, 0.02536378, 1, 0.21, 0.21, 0.21, 1, 0.84, 0.84, 0.84, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ik0q2"]
gradient = SubResource("Gradient_sbr80")
[resource]
render_priority = 0
shader = ExtResource("1_ucjbd")
shader_parameter/noise = ExtResource("3_e5im5")
shader_parameter/emissive_noise = ExtResource("2_143bf")
shader_parameter/color_gradient = SubResource("GradientTexture1D_ik0q2")
shader_parameter/emissive_color = Color(1, 0.32156864, 0, 1)
shader_parameter/noise_strength = 0.74800003227012
shader_parameter/edge_distance = 10.0
shader_parameter/oscillation_speed = Vector2(0, 0.5)

View File

@@ -0,0 +1,46 @@
shader_type spatial;
uniform sampler2D noise;
uniform sampler2D emissive_noise;
uniform sampler2D color_gradient;
uniform sampler2D DEPTH_TEXTURE : hint_depth_texture;
uniform vec4 emissive_color : source_color = vec4(1.0, 0.3, 1.0, 1.0);
uniform float noise_strength : hint_range(0.1,2) = 1;
uniform float edge_distance : hint_range(1, 10) = 1;
uniform vec2 oscillation_speed = vec2(1,1);
varying vec3 world_vertex;
void vertex() {
// Called for every vertex the material is visible on.
vec2 uv = UV + TIME * oscillation_speed;
float noise_val = texture(noise, uv).r;
VERTEX = VERTEX + NORMAL * noise_strength * noise_val;
world_vertex = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
}
void fragment() {
// Called for every pixel the material is visible on.
vec3 color;
vec3 e_col = emissive_color.rgb;
vec2 uv = UV;
float g_noise_val = texture(noise, vec2(uv.x + TIME * 0.2, 0.5)).r;
g_noise_val *= g_noise_val;
float e_noise_val = texture(noise, uv + TIME * 0.2).r;
vec3 gradient_col = texture(color_gradient, vec2(g_noise_val, 0)).rgb;
color = gradient_col;
ALBEDO = color;
e_col = e_col * smoothstep(COLOR.r,1.0, texture(emissive_noise, UV).r) * 20.0;
EMISSION = e_col.rgb;
float depth_tex = texture(DEPTH_TEXTURE, SCREEN_UV).r;
float prox_factor = 1.0 - smoothstep(depth_tex, depth_tex + edge_distance, VERTEX.z);
float a_noise_val = smoothstep(0, .8, texture(noise, uv + TIME * 0.1).r);
ALPHA = COLOR.a * a_noise_val * prox_factor;
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

View File

@@ -0,0 +1 @@
uid://c4uv1a6c6l4w4

View File

@@ -0,0 +1,24 @@
shader_type spatial;
render_mode cull_disabled;
uniform sampler2D streaks_texture;
uniform sampler2D explosion_texture;
uniform vec4 streak_color : source_color;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
vec2 streak_uv = vec2(UV.x * .25 + floor(COLOR.r * 4.0) * .25, UV.y);
float n_val = texture(explosion_texture, UV).r;
float alpha = texture(streaks_texture, streak_uv).r * smoothstep(COLOR.a, 1, n_val);
ALBEDO = streak_color.rgb;
ALPHA = alpha;
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

View File

@@ -0,0 +1 @@
uid://dkfrhh35nf022

View File

@@ -0,0 +1,29 @@
shader_type canvas_item;
uniform sampler2D chars;
uniform sampler2D noise_tex;
void fragment() {
// Random character
vec2 uv = fract(UV * 32.0); // loop uv 32 times for the characters (as the noise resolution is 32x32)
float noise = texture(noise_tex, UV).g;
noise = round(noise * 26.0) / 26.0; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset
uv.x = (uv.x / 26.0); // offset
uv.x += noise; // offset every character by the noise value
uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that
// distortion
float rain = UV.y; // this is a vertical gradient
float distortion = texture(noise_tex, UV / vec2(1.0, 32.0)).g; // this will be used for distortion, using previous noise but only horizontal
distortion = round(distortion * 26.0) / 26.0; // for precision reason, you need to round your distortion too, otherwise some character wouldnt be fully shown
rain -= round(TIME * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed
rain += distortion; // distort this gradient, turning it into a rain
rain = fract(rain); // loop the rain
rain = round(rain * 16.0) / 16.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional
rain = pow(rain, 3.0); // this is not necessary, i just think that it looks good
rain *= 2.0; // this is also not important, just making the characters brighter
COLOR.rgb = texture(chars, uv).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color
}

View File

@@ -0,0 +1 @@
uid://b202rwkcmmg56

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hyuqahibuxvk"
path.s3tc="res://.godot/imported/T_MarbleNoise_tiled.png-f8168c58cf3a1775bc180c7d94a28d05.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://visuals/textures/T_MarbleNoise_tiled.png"
dest_files=["res://.godot/imported/T_MarbleNoise_tiled.png-f8168c58cf3a1775bc180c7d94a28d05.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cm8al4e8mney0"
path.s3tc="res://.godot/imported/T_cloudy_noise_211c.png-6537c12041a33e21ee237bf63259223a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://visuals/textures/T_cloudy_noise_211c.png"
dest_files=["res://.godot/imported/T_cloudy_noise_211c.png-6537c12041a33e21ee237bf63259223a.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

View File

@@ -0,0 +1,14 @@
[gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://c4r0yuw28xqrc"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_5rac8"]
noise_type = 2
frequency = 0.0004
fractal_type = 2
fractal_octaves = 6
fractal_lacunarity = 2.23
fractal_gain = 0.925
[resource]
noise = SubResource("FastNoiseLite_5rac8")
seamless = true
seamless_blend_skirt = 0.326

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bgud1c43hsss0"
path.s3tc="res://.godot/imported/explosive_streaks.png-079e7453e53528e3328bffd3b77d4b45.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://visuals/textures/explosive_streaks.png"
dest_files=["res://.godot/imported/explosive_streaks.png-079e7453e53528e3328bffd3b77d4b45.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

BIN
visuals/textures/glyphs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dpfq1o38kl88c"
path="res://.godot/imported/glyphs.png-8e5b9cbbeceda54b356d4475a50f4b56.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/textures/glyphs.png"
dest_files=["res://.godot/imported/glyphs.png-8e5b9cbbeceda54b356d4475a50f4b56.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://by70e5iuu1n47"
path.s3tc="res://.godot/imported/perlin_seamless.png-5973ac409d711b91decd8c900d3cb3e3.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://visuals/textures/perlin_seamless.png"
dest_files=["res://.godot/imported/perlin_seamless.png-5973ac409d711b91decd8c900d3cb3e3.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

View File

@@ -0,0 +1,13 @@
[gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://i0esgu8xi4dp"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_77w2v"]
noise_type = 5
seed = 212
frequency = 0.154
fractal_octaves = 1
[resource]
width = 32
height = 32
generate_mipmaps = false
noise = SubResource("FastNoiseLite_77w2v")