Fix some bug
This commit is contained in:
@@ -286,6 +286,68 @@ namespace BrewMonster
|
||||
$"({m_aPtSkills.Count} active, {m_aPsSkills.Count} passive) at level {level}.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Animation test / offline: populate skill lists from <see cref="CECHostSkillModel"/> catalog
|
||||
/// (same source and filters as CDlgSkillSubList).
|
||||
/// Call <see cref="CECHostSkillModel.Initialize"/> before this so the catalog matches the current profession.
|
||||
///
|
||||
/// 动画测试 / 离线:从 CECHostSkillModel 目录填充技能列表(与 CDlgSkillSubList 相同来源与过滤)。
|
||||
/// </summary>
|
||||
public void InjectSkillsFromSkillModel(int level = 1, bool isEvil = false)
|
||||
{
|
||||
m_aPtSkills.Clear();
|
||||
m_aPsSkills.Clear();
|
||||
|
||||
List<int> skillIds = CECHostSkillModel.Instance?.CollectSkillSubListSkillIds(isEvil);
|
||||
if (skillIds == null || skillIds.Count == 0)
|
||||
{
|
||||
BMLogger.LogWarning(
|
||||
"InjectSkillsFromSkillModel: CECHostSkillModel catalog is empty — call CECHostSkillModel.Initialize() first.");
|
||||
return;
|
||||
}
|
||||
|
||||
int injected = 0;
|
||||
foreach (int skillId in skillIds)
|
||||
{
|
||||
CECSkill skill = new CECSkill(skillId, level);
|
||||
|
||||
int type = (int)ElementSkill.GetType((uint)skillId);
|
||||
if (skill.SkillCore != null)
|
||||
type = skill.GetType();
|
||||
|
||||
if (type != (int)CECSkill.SkillType.TYPE_PASSIVE &&
|
||||
type != (int)CECSkill.SkillType.TYPE_PRODUCE &&
|
||||
type != (int)CECSkill.SkillType.TYPE_LIVE)
|
||||
m_aPtSkills.Add(skill);
|
||||
else
|
||||
m_aPsSkills.Add(skill);
|
||||
|
||||
injected++;
|
||||
}
|
||||
|
||||
BMLogger.Log($"InjectSkillsFromSkillModel: profession={m_iProfession}, isEvil={isEvil}, " +
|
||||
$"catalog={skillIds.Count}, injected={injected} " +
|
||||
$"({m_aPtSkills.Count} active, {m_aPsSkills.Count} passive) at level {level}.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build <see cref="CECSkill"/> instances for every ID returned by
|
||||
/// <see cref="CECHostSkillModel.CollectSkillSubListSkillIds"/> — includes passive skills shown in the skill tree UI.
|
||||
/// 构建与 CDlgSkillSubList 完全一致的技能列表(含被动)。
|
||||
/// </summary>
|
||||
public List<CECSkill> BuildSkillSubListSkills(int level = 1, bool isEvil = false)
|
||||
{
|
||||
var skills = new List<CECSkill>();
|
||||
List<int> skillIds = CECHostSkillModel.Instance?.CollectSkillSubListSkillIds(isEvil);
|
||||
if (skillIds == null)
|
||||
return skills;
|
||||
|
||||
foreach (int skillId in skillIds)
|
||||
skills.Add(new CECSkill(skillId, level));
|
||||
|
||||
return skills;
|
||||
}
|
||||
|
||||
private void OnMsgHstLearnSkill(ECMSG Msg)
|
||||
{
|
||||
cmd_learn_skill pCmd = GPDataTypeHelper.FromBytes<cmd_learn_skill>((byte[])Msg.dwParam1);
|
||||
|
||||
Reference in New Issue
Block a user