Added underpinnings for advanced screen flash; tweaked default values

for existing screen flash.
This commit is contained in:
Henry 2026-03-07 14:13:15 +00:00
parent 20b657c7b1
commit 8679e817ee
5 changed files with 23 additions and 7 deletions

View file

@ -62,7 +62,7 @@ func boss_horse():
if heart_taken == false:
print("Boss horse!")
await get_tree().create_timer(2).timeout
EventBus.flash_screen.emit(.25)
EventBus.flash_screen.emit(.15)
$Heart.hide()
$Heart.monitoring = false
$Sprite2D.frame = 7
@ -71,7 +71,7 @@ func boss_horse():
var horse_player = $Horse/AnimationPlayer
horse_player.play("run")
await get_tree().create_timer(10).timeout
EventBus.flash_screen.emit(.25)
EventBus.flash_screen.emit(.15)
$Horse.hide()
$Horse.end()
await get_tree().create_timer(5).timeout

View file

@ -184,7 +184,7 @@ func _on_win_game(value: int):
start_button.show()
func _on_flash_screen(duration: float):
func _on_flash_screen(duration: float = .25):
print("flash!")
$CanvasLayer/ColorRect.visible = true
await get_tree().create_timer(duration).timeout

View file

@ -53,11 +53,11 @@ func spawn_enemies():
enemy_count = rows_mod * cols_mod
await get_tree().process_frame
if wave_count == 2 : #This if for Mirror
if wave_count == 2: #This if for Mirror
print("Enemy Wave: ", wave_count)
# Spawn Table
EventBus.flash_screen.emit(.25)
EventBus.flash_screen.emit(.15)
var t = TABLE.instantiate()
add_child(t)
t.position = Vector2(screensize.x / 2, position.y + 125)
@ -67,7 +67,7 @@ func spawn_enemies():
ts.play()
ts = t.get_child(0)
ts.frame = 1
EventBus.flash_screen.emit(.25)
EventBus.flash_screen.emit(.15)
await get_tree().create_timer(1.5).timeout
# Spawn Mirror
@ -89,7 +89,7 @@ func spawn_enemies():
s.start_all_animations()
if wave_count == 3 : #This is for Boss
if wave_count == 3: #This is for Boss
# Hide the player

View file

@ -0,0 +1,15 @@
shader_type canvas_item;
uniform vec4 flash_color : source_color = vec4(1.0, 0.0, 0.0, 1.0);
uniform float intensity : hint_range(0.0, 1.0) = 0.0;
uniform float edge_power : hint_range(0.1, 4.0) = 2.5;
uniform float inner_ratio : hint_range(0.0, 1.0) = 0.75;
uniform float feather : hint_range(0.01, 1.0) = 0.4;
void fragment() {
vec2 uv = UV * 2.0 - 1.0;
float dist = length(uv);
float a = smoothstep(inner_ratio, inner_ratio + feather, dist);
a = pow(a, edge_power);
COLOR = vec4(flash_color.rgb, a * flash_color.a * intensity);
}

View file

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