feat: add sparse circus lights to circus sign on landing (max 4-5 at a time)
This commit is contained in:
@@ -6,6 +6,7 @@ const DISPLAY_FONT := preload("res://shared/assets/fonts/NotoSerifDisplay-Conden
|
||||
const MENU_SHADER := preload("res://menus/assets/shaders/ambient_drift.gdshader")
|
||||
const TENT_STAR_SHADER := preload("res://menus/assets/shaders/tent_star_glow.gdshader")
|
||||
const TENT_LIGHTS_SHADER := preload("res://menus/assets/shaders/tent_lights.gdshader")
|
||||
const SIGN_LIGHTS_SHADER := preload("res://menus/assets/shaders/circus_sign_lights.gdshader")
|
||||
|
||||
# Posizione e ingombro condivisi della freccia indietro in tutte le schermate.
|
||||
const BACK_BUTTON_CENTER := Vector2(0.12, 0.14)
|
||||
@@ -52,6 +53,13 @@ static func tent_material(garland_strength := 0.0) -> ShaderMaterial:
|
||||
return material
|
||||
|
||||
|
||||
static func sign_lights_material() -> ShaderMaterial:
|
||||
var material := ShaderMaterial.new()
|
||||
material.shader = SIGN_LIGHTS_SHADER
|
||||
material.set_shader_parameter("sign_lights_active", 0.0)
|
||||
return material
|
||||
|
||||
|
||||
static func add_image(parent: Control, texture: Texture2D, center: Vector2, normalized_size: Vector2, material: Material = null) -> TextureRect:
|
||||
var image := TextureRect.new()
|
||||
image.texture = texture
|
||||
|
||||
@@ -341,6 +341,8 @@ func _add_sign() -> void:
|
||||
|
||||
_add_sign_layer(rig, CIRCUS_SIGN_ROPES)
|
||||
var panel := _add_sign_layer(rig, CIRCUS_SIGN_PANEL)
|
||||
var sign_mat := MenuUI.sign_lights_material()
|
||||
panel.material = sign_mat
|
||||
var final_y := panel.position.y
|
||||
panel.position.y = final_y - panel.size.y * 1.15
|
||||
|
||||
@@ -353,7 +355,13 @@ func _add_sign() -> void:
|
||||
# L'impatto è sincronizzato con la massima estensione, prima del ritorno elastico.
|
||||
tween.tween_callback(func(): sign_landed.emit())
|
||||
tween.tween_property(panel, "position:y", final_y, 0.50).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT)
|
||||
tween.tween_callback(func(): sign_bounced.emit())
|
||||
tween.tween_callback(func():
|
||||
sign_bounced.emit()
|
||||
# Attiva le lucine colorate dell'insegna con una dolce dissolvenza solo a fine animazione
|
||||
var lights_tween := create_tween()
|
||||
lights_tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS)
|
||||
lights_tween.tween_method(func(val: float): sign_mat.set_shader_parameter("sign_lights_active", val), 0.0, 1.0, 0.6).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
|
||||
)
|
||||
|
||||
|
||||
func _add_sign_layer(parent: Control, texture: Texture2D) -> TextureRect:
|
||||
|
||||
Reference in New Issue
Block a user