public static void LoadData() { g_DataDic = new Dictionary <PEAbnormalType, AbnormalData>(); SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("AbnormalType"); while (reader.Read()) { AbnormalData data = new AbnormalData(); data.type = (PEAbnormalType)PETools.Db.GetInt(reader, "AbnormalId"); data.name = PELocalization.GetString(PETools.Db.GetInt(reader, "TranslationNameId")); data.iconName = PETools.Db.GetString(reader, "Icon"); data.description = PELocalization.GetString(PETools.Db.GetInt(reader, "TranslationDescribeId")); data.target = PETools.Db.GetInt(reader, "AbnormalTarget"); data.deathRemove = PETools.Db.GetBool(reader, "IsDeathRemove"); data.updateByModel = PETools.Db.GetBool(reader, "UpdateByModel"); data.trigger_TimeInterval = PETools.Db.GetFloat(reader, "Trigger_Time"); data.trigger_BuffAdd = PETools.Db.GetIntArray(reader, "Trigger_BuffAdd"); data.trigger_ItemGet = PETools.Db.GetIntArray(reader, "Trigger_ItemGet"); data.trigger_Damage = PETools.Db.GetBool(reader, "Trigger_Damage"); data.trigger_InWater = PETools.Db.GetBool(reader, "Trigger_IntoWater"); data.hit_MutexAbnormal = GetAbnormalType(reader, "Hit_MutexAbnormal"); data.hit_PreAbnormal = GetAbnormalType(reader, "Hit_PreAbnormal"); data.hit_BuffID = PETools.Db.GetIntArray(reader, "Hit_BuffList"); data.hit_Attr = HitAttr.GetHitAttrArray(reader, "Hit_Attr"); data.hit_Damage = HitAttr.GetHitAttr(reader, "Hit_Damage"); data.hit_TimeInterval = PETools.Db.GetFloat(reader, "Hit_Time"); data.hit_AreaTime = PETools.Db.GetFloatArray(reader, "Hit_AreaTime"); data.hit_RainTime = PETools.Db.GetFloat(reader, "Hit_RainTime"); data.hit_HitRate = PETools.Db.GetFloat(reader, "Hit_Rate"); data.eff_BuffAddList = PETools.Db.GetIntArray(reader, "Eff_BuffAdd"); data.eff_Anim = reader.GetString(reader.GetOrdinal("Eff_Anim")); data.eff_Camera = EffCamera.GetEffCamera(reader, "Eff_Camera"); data.eff_AbnormalRemove = GetAbnormalType(reader, "Eff_RemoveAbnormal"); data.eff_Particles = PETools.Db.GetIntArray(reader, "Eff_Particle"); data.eff_SkinColor = PETools.Db.GetColor(reader, "Eff_SkinColor"); data.eff_BodyWeight = ThresholdData.GetThresholdDatas(reader, "Eff_BodyWeight"); data.rt_Immediate = PETools.Db.GetBool(reader, "RT_Imm"); data.rt_TimeInterval = PETools.Db.GetFloat(reader, "RT_Time"); data.rt_BuffRemove = PETools.Db.GetIntArray(reader, "RT_BuffRemove"); data.rt_EffectEnd = PETools.Db.GetBool(reader, "RT_EffEnd"); data.rt_OutsideWater = PETools.Db.GetBool(reader, "RT_OutWater"); data.rh_BuffList = PETools.Db.GetIntArray(reader, "RH_BuffRemove"); data.rh_Attr = HitAttr.GetHitAttrArray(reader, "RH_Attr"); data.re_BuffRemove = PETools.Db.GetIntArray(reader, "RE_BuffRemove"); data.re_BuffAdd = PETools.Db.GetIntArray(reader, "RE_BuffAdd"); data.re_AbnormalAdd = GetAbnormalType(reader, "RE_AbnormalAdd"); data.re_Anim = reader.GetString(reader.GetOrdinal("RE_Anim")); data.re_Camera = EffCamera.GetEffCamera(reader, "RE_Camera"); data.re_Particles = PETools.Db.GetIntArray(reader, "RE_Particle"); g_DataDic.Add(data.type, data); } }
static HitAttr GetHitAttr(string attrStr) { if ("0" == attrStr) { return(null); } HitAttr ret = new HitAttr(); string[] strs = attrStr.Split(','); ret.attrType = (AttribType)Convert.ToInt32(strs[0]); ret.minThreshold = Convert.ToSingle(strs[1]); ret.maxThreshold = Convert.ToSingle(strs[2]); ret.minRate = Convert.ToSingle(strs[3]); ret.maxRate = Convert.ToSingle(strs[4]); return(ret); }
public static HitAttr[] GetHitAttrArray(SqliteDataReader reader, string fieldName) { string str = reader.GetString(reader.GetOrdinal(fieldName)); if ("0" == str) { return(null); } string[] subStrs = str.Split(';'); HitAttr[] ret = new HitAttr[subStrs.Length]; for (int i = 0; i < subStrs.Length; ++i) { ret[i] = GetHitAttr(subStrs[i]); } return(ret); }