mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
fix(feedback): remove ball contact screen flash
This commit is contained in:
@@ -118,17 +118,6 @@ label_settings = SubResource("LabelSettings_kickoff")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="ImpactFlash" type="ColorRect" parent="Control"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.72, 0.9, 1, 0)
|
||||
|
||||
[node name="GoalCelebration" type="Control" parent="Control"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
|
||||
@@ -18,7 +18,6 @@ class_name HUDController
|
||||
@onready var result_panel = get_node_or_null("Control/ResultOverlay/Center/ResultPanel")
|
||||
@onready var result_label = get_node_or_null("Control/ResultOverlay/Center/ResultPanel/VBox/ResultLabel")
|
||||
@onready var final_score_label = get_node_or_null("Control/ResultOverlay/Center/ResultPanel/VBox/FinalScoreLabel")
|
||||
@onready var impact_flash = get_node_or_null("Control/ImpactFlash")
|
||||
@onready var goal_celebration = get_node_or_null("Control/GoalCelebration")
|
||||
@onready var goal_tint = get_node_or_null("Control/GoalCelebration/Tint")
|
||||
@onready var goal_title = get_node_or_null("Control/GoalCelebration/Center/GoalTitle")
|
||||
@@ -32,7 +31,6 @@ class_name HUDController
|
||||
|
||||
var ship: Node
|
||||
var _last_score := {0: 0, 1: 0}
|
||||
var _impact_flash_tween: Tween
|
||||
var _goal_tween: Tween
|
||||
|
||||
func _ready():
|
||||
@@ -177,18 +175,6 @@ func _flash_score_label(label: Label) -> void:
|
||||
tween.tween_property(label, "scale", Vector2(1.0, 1.0), 0.2)
|
||||
|
||||
|
||||
func flash_impact(intensity: float) -> void:
|
||||
if not impact_flash or not is_instance_valid(impact_flash):
|
||||
return
|
||||
if _impact_flash_tween and _impact_flash_tween.is_valid():
|
||||
_impact_flash_tween.kill()
|
||||
impact_flash.color = Color(0.72, 0.9, 1.0, lerpf(0.06, 0.24, intensity))
|
||||
impact_flash.visible = true
|
||||
_impact_flash_tween = create_tween()
|
||||
_impact_flash_tween.tween_property(impact_flash, "color:a", 0.0, lerpf(0.08, 0.18, intensity))
|
||||
_impact_flash_tween.tween_callback(func(): impact_flash.visible = false)
|
||||
|
||||
|
||||
func show_goal_celebration(scoring_team: int) -> void:
|
||||
if not goal_celebration or not goal_title or not goal_tint:
|
||||
return
|
||||
|
||||
@@ -164,8 +164,6 @@ func spawn_camera_rig(target: Ship) -> ShipCameraRig:
|
||||
|
||||
|
||||
func _on_player_impact(intensity: float) -> void:
|
||||
if hud:
|
||||
hud.flash_impact(intensity)
|
||||
if not _goal_slowmo_active:
|
||||
_run_hit_stop(intensity)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ The largest gap between this and a AAA-feeling product is presentation, not code
|
||||
- [ ] **Audio — there is none.** Zero sound files, zero `AudioStreamPlayer` nodes, no bus layout. Needs: engine hum pitched to throttle, turbo whoosh, ball impacts scaled by collision impulse, wall scrapes, goal explosion, crowd bed, UI clicks, countdown beeps, music. Can be driven off `Ship`'s existing telemetry signals.
|
||||
- [x] SSAO/SSIL in the arena Environments — cheapest single perceived-quality win available; grounds the ships against the deck and gives the fillets and goal recesses real depth.
|
||||
- [x] VFX on anything that moves: throttle-reactive engine cores and simple rear flames, a speed-scaled ball trail and team-tinted goal bursts.
|
||||
- [x] Impact feedback — intensity-scaled screen shake, unscaled hit-stop, HUD flash and controller rumble on ball contact.
|
||||
- [x] Impact feedback — intensity-scaled screen shake, unscaled hit-stop and controller rumble on ball contact.
|
||||
- [x] Camera feel in `ship_camera.gd` — speed-based FOV widening, turbo kick-back and decaying impact shake.
|
||||
- [x] Goal celebration sequence: goal burst, team-tinted flash/title card, dedicated camera cut and slow-motion beat after authoritative score registration and before reset/kickoff.
|
||||
- [x] Local lighting / dynamic GI — four local pitch lights plus SDFGI provide bounce and contact lighting for the runtime-generated arena shell; the shader's `hull_fill` stand-in is retired. (The shell is generated in `_ready`, so it cannot participate in an editor LightmapGI bake.)
|
||||
|
||||
Reference in New Issue
Block a user