89 lines
2.7 KiB
GDScript
89 lines
2.7 KiB
GDScript
@tool
|
||
extends AnimationRoot
|
||
|
||
|
||
# 覆盖该方法
|
||
func _default_data() -> Dictionary:
|
||
return {
|
||
"has_entered": false,
|
||
"scissor_os": false,
|
||
"key_os": false,
|
||
}
|
||
|
||
|
||
func _ready() -> void:
|
||
super._ready()
|
||
if Engine.is_editor_hint():
|
||
return
|
||
|
||
|
||
#region node_reference
|
||
var closeup李氏纸人: Closeup2D
|
||
var closeup麻将出千游戏: Closeup2D
|
||
var closeup整理麻将游戏: Closeup2D
|
||
#endregion
|
||
|
||
|
||
# 读取设置变量名
|
||
func _setup_node_reference() -> void:
|
||
closeup李氏纸人 = $"../DeployLayer/Closeup李氏纸人"
|
||
closeup麻将出千游戏 = $"../DeployLayer/Closeup麻将出千游戏"
|
||
closeup整理麻将游戏 = $"../DeployLayer/Closeup整理麻将游戏"
|
||
|
||
|
||
func _on_ground_ready() -> void:
|
||
# c03_mahjong_game: 0:初始化 1:麻将已给牌 2:麻将出千 3:麻将结束
|
||
var mahjong_stage = EventManager.get_stage("c03_mahjong_game")
|
||
closeup整理麻将游戏.enabled = mahjong_stage == 0
|
||
if mahjong_stage == 1:
|
||
closeup整理麻将游戏.display()
|
||
elif mahjong_stage == 2:
|
||
closeup麻将出千游戏.display()
|
||
closeup整理麻将游戏.exit.connect(_on_exit_sort_mahjong_game)
|
||
closeup麻将出千游戏.exit.connect(_on_exit_cheat_mahjong_game)
|
||
|
||
closeup李氏纸人.exit.connect(_on_lipaperwoman_exited)
|
||
|
||
if not data["has_entered"]:
|
||
set_data("has_entered", true)
|
||
await Util.wait(0.5)
|
||
SceneManager.pop_os_with_str("c03_s04_首次进入")
|
||
|
||
|
||
func _on_exit_sort_mahjong_game(arg) -> void:
|
||
if arg:
|
||
closeup整理麻将游戏.enabled = false
|
||
closeup麻将出千游戏.enabled = true
|
||
closeup麻将出千游戏.display()
|
||
|
||
|
||
func _on_exit_cheat_mahjong_game(arg) -> void:
|
||
if arg:
|
||
EventManager.set_stage_if_greater("c03_mahjong_game", 3)
|
||
EventManager.set_stage_if_greater("c03_li_paperwoman", 1)
|
||
closeup麻将出千游戏.enabled = false
|
||
# 渐隐黑屏,3-5s黑屏头痛效果+音效,回到横板后玩家位置动画为坐靠在麻将桌左侧,站起后气泡文字
|
||
SceneManager.lock_player()
|
||
var player = SceneManager.get_player() as MainPlayer
|
||
player.global_position.x = 443.0
|
||
player.set_facing_direction(Vector2.LEFT)
|
||
player.player_action(19, true)
|
||
player.toggle_pause_state(true)
|
||
await Util.wait(2.0)
|
||
SceneManager.dizzy_effect(3.5, 1.5, false)
|
||
await Util.wait(3.0)
|
||
player.toggle_pause_state(false)
|
||
await player.animation_finished
|
||
SceneManager.pop_os_with_str("c03_s04_麻将游戏结束")
|
||
SceneManager.unlock_player()
|
||
# EventManager.set_stage_if_greater("hand", 10)
|
||
|
||
|
||
func _on_lipaperwoman_exited(_arg = null) -> void:
|
||
if not data["scissor_os"] and SceneManager.has_prop("prop_剪刀"):
|
||
set_data("scissor_os", true)
|
||
SceneManager.pop_os_with_str("c03_s04_获得剪刀后")
|
||
elif not data["key_os"] and SceneManager.has_prop("prop_2013钥匙"):
|
||
set_data("key_os", true)
|
||
SceneManager.pop_os_with_str("c03_s04_获得钥匙后")
|