using cfg.ActorCfg;
using cfg.SkillCfg;
using Framework;
using Gameplay.Net;
using System.Collections.Generic;
public class CommandSkillManager
{
///
/// 指挥官可以携带的技能数量
///
public static readonly int COMMAND_SKILL_COUNT = 3;
///
/// 指挥官技能无效id
///
public static readonly int NONE_ID = 0;
private readonly List _commandSkillIDs = new(COMMAND_SKILL_COUNT) { NONE_ID, NONE_ID, NONE_ID };
public List CommandSkillIDs => _commandSkillIDs;
public CommandSkillManager(uint[] ids = null)
{
if (null == ids)
{
for (int i = 0; i <= COMMAND_SKILL_COUNT; ++i)
{
_commandSkillIDs[i] = NONE_ID;
}
return;
}
for (int i = 0; i < ids.Length && i < COMMAND_SKILL_COUNT; ++i)
{
int upgradeId = (int)ids[i];
if (NONE_ID == upgradeId)
{
_commandSkillIDs[i] = NONE_ID;
continue;
}
int skillLevel = Actor.Instance.PlayerSkill.GetLevel(upgradeId);
DataPlayerSkillUpgrade playerSkillUpgrade = TableManager.Instance.Tables.PlayerSkillUpgrade.Get(upgradeId, skillLevel);
if (null == playerSkillUpgrade)
{
DebugUtil.LogError($"取不到指挥官技能养成数据,id{upgradeId},等级{skillLevel}");
_commandSkillIDs[i] = NONE_ID;
continue;
}
_commandSkillIDs[i] = playerSkillUpgrade.SkillID;
}
}
public int GetCommandSkillID(int idx)
{
return _commandSkillIDs[idx];
}
///
/// 指挥官技能id是否有效
///
///
public static bool IsIdValid(int skillId)
{
return skillId > NONE_ID;
}
}