xiandie/manager/event_manager/event2d.gd

42 lines
893 B
GDScript

extends Node2D
class_name Event2D
# 前置依赖事件,为空时意味着无前置事件
@export var pre_event: String
# 当前事件
@export var event: String
var prev_stage := 0
var stage := 0
func _ready() -> void:
stage = EventManager.get_stage(event)
if pre_event:
prev_stage = EventManager.get_stage(pre_event)
SceneManager.ground_ready.connect(_on_ground_ready)
EventManager.stage_updated.connect(_on_global_stage_updated)
func _on_global_stage_updated(e: StringName, s: int):
if e == pre_event:
prev_stage = s
print("[Event2D] Pre-event stage updated: %s, stage: %s" % [pre_event, prev_stage])
_on_pre_stage_updated()
elif e == event:
stage = s
print("[Event2D] Event stage updated: %s, stage: %s" % [event, stage])
_on_stage_updated()
func _on_ground_ready(ground: Ground2D):
pass
func _on_pre_stage_updated():
pass
func _on_stage_updated():
pass