2024-07-04 18:41:23 +08:00
|
|
|
|
using cfg.ActorCfg;
|
|
|
|
|
|
using cfg.SkillCfg;
|
|
|
|
|
|
using Framework;
|
|
|
|
|
|
using Gameplay.Net;
|
2023-12-07 16:16:28 +08:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
public class CommandSkillManager
|
|
|
|
|
|
{
|
2024-03-12 15:34:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指挥官可以携带的技能数量
|
|
|
|
|
|
/// </summary>
|
2023-12-07 16:16:28 +08:00
|
|
|
|
public static readonly int COMMAND_SKILL_COUNT = 3;
|
2024-03-12 15:34:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指挥官技能无效id
|
|
|
|
|
|
/// </summary>
|
2023-12-07 16:16:28 +08:00
|
|
|
|
public static readonly int NONE_ID = 0;
|
|
|
|
|
|
|
2024-07-04 19:01:50 +08:00
|
|
|
|
private readonly List<int> _commandSkillIDs = new(COMMAND_SKILL_COUNT) { NONE_ID, NONE_ID, NONE_ID };
|
2024-03-12 15:34:23 +08:00
|
|
|
|
|
2023-12-07 16:16:28 +08:00
|
|
|
|
public List<int> CommandSkillIDs => _commandSkillIDs;
|
|
|
|
|
|
|
2024-07-04 18:41:23 +08:00
|
|
|
|
public CommandSkillManager(uint[] ids = null)
|
2023-12-07 16:16:28 +08:00
|
|
|
|
{
|
2024-07-04 18:41:23 +08:00
|
|
|
|
if (null == ids)
|
2024-07-04 19:01:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i <= COMMAND_SKILL_COUNT; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
_commandSkillIDs[i] = NONE_ID;
|
|
|
|
|
|
}
|
2024-07-04 18:41:23 +08:00
|
|
|
|
return;
|
2024-07-04 19:01:50 +08:00
|
|
|
|
}
|
2024-07-04 18:41:23 +08:00
|
|
|
|
|
2024-07-04 19:01:50 +08:00
|
|
|
|
for (int i = 0; i < ids.Length && i < COMMAND_SKILL_COUNT; ++i)
|
2024-07-04 18:41:23 +08:00
|
|
|
|
{
|
|
|
|
|
|
int upgradeId = (int)ids[i];
|
|
|
|
|
|
if (NONE_ID == upgradeId)
|
|
|
|
|
|
{
|
2024-07-04 19:01:50 +08:00
|
|
|
|
_commandSkillIDs[i] = NONE_ID;
|
2024-07-04 18:41:23 +08:00
|
|
|
|
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}");
|
2024-07-04 19:01:50 +08:00
|
|
|
|
_commandSkillIDs[i] = NONE_ID;
|
2024-07-04 18:41:23 +08:00
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
_commandSkillIDs[i] = playerSkillUpgrade.SkillID;
|
|
|
|
|
|
}
|
2023-12-07 16:16:28 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int GetCommandSkillID(int idx)
|
|
|
|
|
|
{
|
|
|
|
|
|
return _commandSkillIDs[idx];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-03-12 15:34:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指挥官技能id是否有效
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static bool IsIdValid(int skillId)
|
|
|
|
|
|
{
|
|
|
|
|
|
return skillId > NONE_ID;
|
|
|
|
|
|
}
|
2023-12-07 16:16:28 +08:00
|
|
|
|
}
|