57 lines
1.4 KiB
GDScript
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()
|