80 lines
2.4 KiB
GDScript
80 lines
2.4 KiB
GDScript
@tool
|
|
extends AnimationRoot
|
|
|
|
|
|
# 覆盖该方法
|
|
func _default_data() -> Dictionary:
|
|
return {}
|
|
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
if Engine.is_editor_hint():
|
|
return
|
|
|
|
|
|
func _on_ground_ready() -> void:
|
|
# 粘鼠游戏
|
|
if ArchiveManager.get_global_value(&"c02_meat_dropping"):
|
|
# 肉掉落,检查粘鼠板是否启用
|
|
if $"../DeployLayer/Interactable粘鼠板".interacted_times > 0:
|
|
if not $"../DeployLayer/Pickable掉落的肉".picked:
|
|
var sprite = $"../DeployLayer/Interactable粘鼠板/粘鼠挣扎"
|
|
sprite.visible = true
|
|
sprite.play()
|
|
else:
|
|
$"../DeployLayer/Interactable粘鼠板/粘鼠死亡".visible = true
|
|
$"../DeployLayer/Interactable粘鼠板/Note死老鼠".enabled = true
|
|
ArchiveManager.set_global_entry(&"c02_meat_given", true)
|
|
else:
|
|
$"../DeployLayer/Ambush老鼠叼肉".enabled = true
|
|
$"../DeployLayer/老鼠叼肉".visible = true
|
|
if ArchiveManager.get_global_value(&"c02_meat_given"):
|
|
$"../DeployLayer/Pickable掉落的肉".enabled = true
|
|
|
|
var xiaochan = $"../DeployLayer/Ambush小蝉消失" as Ambush2D
|
|
var madman = $"../DeployLayer/Npc疯子" as Npc2D
|
|
madman.interacted.connect(_on_madman_interacted)
|
|
if ArchiveManager.get_global_value(&"c02_madman_hitwall", false):
|
|
madman.queue_free()
|
|
# 疯子消失后启用杂物堆
|
|
$"../DeployLayer/Ambush杂物堆".enabled = true
|
|
# 杂物堆前,首次交互时显示小蝉
|
|
if not xiaochan.played:
|
|
xiaochan.enabled = true
|
|
xiaochan.visible = true
|
|
|
|
|
|
# 老鼠叼肉 ambush
|
|
func mouse_pick_meat() -> void:
|
|
$"../DeployLayer/Ambush老鼠叼肉".enabled = false
|
|
SceneManager.freeze_player(2.0)
|
|
# 标记为已掉落
|
|
ArchiveManager.set_global_entry(&"c02_meat_dropping", false)
|
|
var sprite = $"../DeployLayer/老鼠叼肉"
|
|
sprite.play()
|
|
await sprite.animation_finished
|
|
SceneManager.pop_os_with_str("c02_敲门_老鼠叼肉")
|
|
|
|
|
|
func _on_madman_interacted() -> void:
|
|
if EventManager.get_stage("c02_madman_interacted") > 0:
|
|
return
|
|
await DialogueManager.dialogue_ended
|
|
EventManager.set_stage("c02_madman_interacted", 1)
|
|
SceneManager.pop_os_with_str("c02_一楼疯子互动后")
|
|
|
|
|
|
func xiaochan_disappear():
|
|
var xc = $"../DeployLayer/Ambush小蝉消失/ProSprite" as AnimatedSprite2D
|
|
xc.play("小蝉背对转头")
|
|
create_tween().tween_property(xc, "modulate:a", 0.0, 2.0)
|
|
|
|
|
|
func wood_puppet() -> void:
|
|
SceneManager.enable_prop_item("prop_木头人偶")
|
|
|
|
|
|
func bucket_meat() -> void:
|
|
SceneManager.enable_prop_item("prop_新鲜的肉")
|