86 lines
2.5 KiB
C#
86 lines
2.5 KiB
C#
// Filename : CECSkillConvert.cs
|
|
// Creator : zhangyitian
|
|
// Date : 2014/07/09
|
|
// Converted to C# from EC_SkillConvert.cpp
|
|
|
|
using CSNetwork.GPDataType;
|
|
using System.Collections.Generic;
|
|
|
|
namespace BrewMonster.Scripts.Skills
|
|
{
|
|
// 神魔转换查询表 // God-Evil skill conversion table
|
|
public class CECSkillConvert
|
|
{
|
|
private static CECSkillConvert instance;
|
|
private Dictionary<int, int> m_convertTable;
|
|
private bool m_bInitialized;
|
|
|
|
private CECSkillConvert()
|
|
{
|
|
m_convertTable = new Dictionary<int, int>();
|
|
m_bInitialized = false;
|
|
}
|
|
|
|
// 单例 // Singleton
|
|
public static CECSkillConvert Instance
|
|
{
|
|
get
|
|
{
|
|
if (instance == null)
|
|
{
|
|
instance = new CECSkillConvert();
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
private void Initialize()
|
|
{
|
|
var pDB = ElementDataManProvider.GetElementDataMan();
|
|
|
|
var dt = DATA_TYPE.DT_GOD_EVIL_CONVERT_CONFIG;
|
|
var map = pDB.GetAllDataTypeWithType(ID_SPACE.ID_SPACE_CONFIG, dt);
|
|
if (map == null)
|
|
{
|
|
BMLogger.LogError("CECSkillConvert Initialize failed: no data found for DT_GOD_EVIL_CONVERT_CONFIG");
|
|
return;
|
|
}
|
|
|
|
foreach (var obj in map)
|
|
{
|
|
GOD_EVIL_CONVERT_CONFIG config = (GOD_EVIL_CONVERT_CONFIG)obj;
|
|
if (config.skill_map != null)
|
|
{
|
|
for (int i = 0; i + 1 < map.Length; i += 2)
|
|
{
|
|
if (config.skill_map[i] != 0 &&
|
|
config.skill_map[i+128] != 0)
|
|
{
|
|
m_convertTable[config.skill_map[i]] = config.skill_map[i + 128];
|
|
m_convertTable[config.skill_map[i+128]] = config.skill_map[i];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
m_bInitialized = true;
|
|
}
|
|
|
|
// 获得转换后的技能,返回0表示没有转换的技能 // Get the converted skill, return 0 if no conversion exists
|
|
public int GetConvertSkill(int skillID)
|
|
{
|
|
if (!m_bInitialized)
|
|
{
|
|
Initialize();
|
|
}
|
|
|
|
if (m_convertTable.TryGetValue(skillID, out int convertedSkillID))
|
|
{
|
|
return convertedSkillID;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
}
|