09d4a60f43
Move every script and scene into role-based directories (actors/, systems/, ui/, levels/, props/) and all raw art under art/ (grouped by role, snake_case, Extract-Textures GLBs), dropping Blender version-suffix noise. Filenames are snake_case (PascalCase reserved for class_name) to avoid case-insensitive filesystem aliasing on the web/macOS targets. Routes the bull's hits through the typed DamageEvent pipeline and wires the bull's abilities to the Fx library. Updates CLAUDE.md's folder-layout overview to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CCyaJPTHCH9EDthpf4A5Sj
17 lines
673 B
Plaintext
17 lines
673 B
Plaintext
shader_type canvas_item;
|
|
|
|
// Faint red gradient hugging the screen edges, flashed on a hit. `flash` is tweened
|
|
// 0.9 → 0 by the HUD; the vignette is transparent in the centre and reddens toward
|
|
// the corners so the middle of the screen stays clear.
|
|
uniform float flash : hint_range(0.0, 1.0) = 0.0;
|
|
uniform vec3 tint : source_color = vec3(0.75, 0.0, 0.0);
|
|
uniform float inner : hint_range(0.0, 1.0) = 0.45;
|
|
uniform float outer : hint_range(0.0, 1.0) = 1.0;
|
|
|
|
void fragment() {
|
|
// Distance from centre normalised so the corners land at ~1.0.
|
|
float dist = length(UV - vec2(0.5)) / 0.70710678;
|
|
float v = smoothstep(inner, outer, dist);
|
|
COLOR = vec4(tint, v * flash);
|
|
}
|