// 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 m_convertTable; private bool m_bInitialized; private CECSkillConvert() { m_convertTable = new Dictionary(); 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; } } }