From 8679e817eeb65821acfda56cc0260e725d91e0e5 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 7 Mar 2026 14:13:15 +0000 Subject: [PATCH] Added underpinnings for advanced screen flash; tweaked default values for existing screen flash. --- scenes/boss.gd | 4 ++-- scenes/main.gd | 2 +- scenes/wave.gd | 8 ++++---- shaders/flash_screen.gdshader | 15 +++++++++++++++ shaders/flash_screen.gdshader.uid | 1 + 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 shaders/flash_screen.gdshader create mode 100644 shaders/flash_screen.gdshader.uid diff --git a/scenes/boss.gd b/scenes/boss.gd index c9cc93d..a1fd288 100644 --- a/scenes/boss.gd +++ b/scenes/boss.gd @@ -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 diff --git a/scenes/main.gd b/scenes/main.gd index 1a237ef..eb5d139 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -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 diff --git a/scenes/wave.gd b/scenes/wave.gd index ba90144..6611b2b 100644 --- a/scenes/wave.gd +++ b/scenes/wave.gd @@ -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 diff --git a/shaders/flash_screen.gdshader b/shaders/flash_screen.gdshader new file mode 100644 index 0000000..a800786 --- /dev/null +++ b/shaders/flash_screen.gdshader @@ -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); +} diff --git a/shaders/flash_screen.gdshader.uid b/shaders/flash_screen.gdshader.uid new file mode 100644 index 0000000..d4fc5ab --- /dev/null +++ b/shaders/flash_screen.gdshader.uid @@ -0,0 +1 @@ +uid://d1nem2giyx0sy