using Cielonos.Core.Interaction;
using UnityEngine;
namespace Cielonos.MainGame.Interactions
{
///
/// 出口传送门。战斗房间全部敌人清空后才激活,玩家交互后通知 RunManager 当前节点已完成。
/// - 普通/精英战斗节点:完成后回到地图选择
/// - Boss 节点:完成后进入结算画面
/// 不需要在脚本中区分节点类型,由 RunManager.CompleteCurrentNode() 内部判断。
///
public class ExitGate : InteractableObjectBase
{
private void Start()
{
// 初始不可交互,等待战斗房间清空
SetInteractable(false);
CombatManager.CombatRoomSm.OnRoomCleared += OnRoomCleared;
}
private void OnDestroy()
{
CombatManager.CombatRoomSm.OnRoomCleared -= OnRoomCleared;
}
protected override void InitializeChoices()
{
choices.Add(new InteractionChoice("Leave Zone", CompleteNode));
}
/// 战斗房间清空后激活传送门,允许玩家交互。
private void OnRoomCleared()
{
SetInteractable(true);
Debug.Log("[ExitGate] 战斗房间已清空,传送门已激活。");
}
/// 通知 RunManager 当前节点已完成,触发阶段切换。
private void CompleteNode()
{
RunManager.Instance.CompleteCurrentNode();
}
}
}