Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }