42 lines
1001 B
GDScript
42 lines
1001 B
GDScript
extends CanvasLayer
|
|
|
|
signal exit(success: bool)
|
|
signal shaven_fulfilled
|
|
|
|
@export var exit_on_shaven_fulfilled := true
|
|
@export var required_ratio := 0.6
|
|
|
|
@onready var flyer = $"刮刮乐"
|
|
@onready var sfx = $"Sfx撕海报"
|
|
|
|
var shaven = ArchiveManager.get_global_value(name)
|
|
|
|
|
|
func _ready() -> void:
|
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
|
if shaven:
|
|
flyer.queue_free()
|
|
return
|
|
flyer.shaven.connect(_on_shaven)
|
|
SceneManager.pop_center_notification("ui_left_mouse_shave")
|
|
if exit_on_shaven_fulfilled:
|
|
shaven_fulfilled.connect(exit.emit.bind(true))
|
|
|
|
|
|
var exiting = false
|
|
|
|
|
|
func _on_shaven(progress: float):
|
|
if exiting:
|
|
return
|
|
if progress >= required_ratio:
|
|
exiting = true
|
|
print("刮开 %s 以上!" % required_ratio)
|
|
ArchiveManager.set_global_entry(name, true)
|
|
sfx.global_play()
|
|
var tween = create_tween()
|
|
tween.tween_property(flyer, "modulate:a", 0.0, 1.0)
|
|
tween.tween_callback(shaven_fulfilled.emit)
|
|
# elif GlobalConfig.DEBUG:
|
|
# print("刮开进度:", progress)
|