xiandie/scene/ground/script/c03/s08_closeup囚室墙洞.gd

57 lines
1.4 KiB
GDScript

extends CanvasLayer
@warning_ignore("unused_signal")
signal exit(success: bool)
@export var required_ratio := 0.6
@onready var flyer = %"刮刮乐"
@onready var sfx = %"Sfx撕海报"
@onready var hole_btn = %"墙洞Button" as TextureButton
@onready var behind_the_hole = %"囚室鱼眼景深镜头"
var shaven_stage = 0
var shaven_key_name = "c03_prison_flyer"
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
shaven_stage = EventManager.get_stage(shaven_key_name)
hole_btn.pressed.connect(_on_hole_pressed)
if shaven_stage > 0:
_setup_on_shaven_finished()
else:
flyer.key_area_shaven.connect(_on_key_area_shaven)
SceneManager.pop_center_notification("ui_left_mouse_shave")
var exiting = false
func _on_key_area_shaven(progress: float):
if exiting:
return
if progress >= required_ratio:
exiting = true
print("key_area 刮开 %s 以上!" % required_ratio)
EventManager.set_stage(shaven_key_name, 1)
sfx.global_play()
var tween = create_tween()
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
tween.tween_callback(_setup_on_shaven_finished)
func _setup_on_shaven_finished() -> void:
flyer.queue_free()
func _on_hole_pressed() -> void:
behind_the_hole.display()
follow_viewport_enabled = true
# func _unhandled_input(event: InputEvent) -> void:
# if event.is_action_pressed("cancel") and behind_the_hole.visible:
# behind_the_hole.visible = false
# get_viewport().set_input_as_handled()