public ushort FindID(ushort skillID, SKILL_STRINGS_LABEL label, SystemLanguage?lang = null) { using (var _reader = FileIO.Instance.CSVReader <SkillStringsTable>(TablePath)) { List <SkillStringsTable> _rows = _reader.Where(_row => { // field FieldInfo _skillIDInfo = _row.GetType().GetField(ColumnSkillIDName, BindingFlags.Instance | BindingFlags.Public); if (_skillIDInfo == null) { return(false); } FieldInfo _labelInfo = _row.GetType().GetField(ColumnLabelName, BindingFlags.Instance | BindingFlags.Public); if (_labelInfo == null) { return(false); } return(((short)_skillIDInfo.GetValue(_row) == skillID) && ((SKILL_STRINGS_LABEL)_labelInfo.GetValue(_row) == label)); }).ToList(); if (_rows.Count == 0) { throw new System.NullReferenceException(); } if (_rows.Count > 1) { throw new System.Exception("Find Unique but got duplicated!"); } return(_rows[0].ID); } }
public MultiLangString <SkillStringsTable> GetMultiLangStringWithParam(ushort skillID, int level, SKILL_STRINGS_LABEL label) { ushort _tableID = FindID(skillID, label); MultiLangString <SkillStringsTable> _multiLang; var _parameterList = GetSkillDescriptionParameter(skillID, level); if (_parameterList.Count > 0) { var _parameterArray = _parameterList.Cast <object> ().ToArray(); _multiLang = new MultiLangString <SkillStringsTable> (_tableID, SkillStringsTableReader.Instance, _parameterArray); } else { _multiLang = new MultiLangString <SkillStringsTable> (_tableID, SkillStringsTableReader.Instance); } return(_multiLang); }
public MultiLangString <SkillStringsTable> GetMultiLangStringWithoutParam(ushort skillID, SKILL_STRINGS_LABEL label) { ushort _tableID = FindID(skillID, label); MultiLangString <SkillStringsTable> _multiLang = new MultiLangString <SkillStringsTable> (_tableID, SkillStringsTableReader.Instance); return(_multiLang); }