using System.Collections.Generic; using Gameplay.Unit; public class FightTeamManager { public static FightTeamManager Instance { get { if (_instance == null) { _instance = new FightTeamManager(); } return _instance; } } private static FightTeamManager _instance; private FightTeamManager() { } /// /// 设置转换战斗阶段窗口 /// public static UIWindow FightTeamWindow => _fightTeamWindow; private static UIWindow _fightTeamWindow; public static void SetFightTeamWindow(UIWindow window) { _fightTeamWindow = window; } public static void ActiveFightTeamWindow() { Instance.Init(); _fightTeamWindow?.ShowWindow(); } /// /// 上阵ID列表 /// private List _fightIDList; /// /// 上阵Unit的TeamUnit数据集合 /// private Dictionary _onFightUnitInfos; /// /// 指挥官技能 /// private CommandSkillManager _commonSkillMgr; public CommandSkillManager CommandSkillMgr => _commonSkillMgr; #region Init private void _Init() { _fightIDList = new(); _onFightUnitInfos = new(); //_commonSkillMgr = TeamManager.Instance.CommonSkillMgr; var fightIDList = TeamManager.Instance.GetFightList(); foreach (var uid in fightIDList) { var unit = TeamManager.Instance.GetTeamUnitInfoByUid(uid); if (unit == null) { DebugUtil.LogError($"无法获取已上阵角色TeamUnitInfo, uid:{uid}"); } _fightIDList.Add(uid); _onFightUnitInfos.Add(uid, unit); } } private void _Release() { _fightIDList.Clear(); _onFightUnitInfos.Clear(); } #endregion #region API /// /// 初始化 /// public void Init() { _Init(); } public void Release() { _Release(); } public void StartBattle() { } /// /// 获取指挥官技能 /// public void InitCommandSkillMgr() { _commonSkillMgr = TeamManager.Instance.CommonSkillMgr; } /// /// 获取战斗上阵ID列表 /// /// public List GetFightIDList() { return _fightIDList; } /// /// 获取战斗上阵的TeamUnitInfo集合 /// /// public Dictionary GetFightTeamUnitInfos() { return _onFightUnitInfos; } public TeamUnitInfo GetFightTeamUnitInfo(uint uid) { if (_onFightUnitInfos.TryGetValue(uid, out var unitInfo)) { return unitInfo; } return null; } #endregion }