Beispiel #1
0
        private static float GetValue(this CfgSkillEffect effect)
        {
            if (!effect.IsSpecialValue())
            {
                // Ich kack in 360° -.- Jetzt ist die Value noch abgängig von efect_type...
                if (effect.Value_type == 4 || // Speed
                    effect.Value_type == 15)  // Energy
                {
                    return(effect.Value);
                }

                if (effect.Effect_type == 5 ||  // Energy
                    effect.Effect_type == 14 || // Random Debuffs
                    effect.Effect_type == 28 || // Random Buffs
                    effect.Effect_type == 32 || // Extra targets
                    effect.Effect_type == 37)   // Lost HP percentage
                {
                    return(effect.Value);
                }

                // TODO: More effect_type-based Values o.O?

                return(effect.Value / 10.0f);
            }

            return(effect.VEffect.NormalizedValue);
        }
Beispiel #2
0
 public SkillEffect(int id, Skill skill)
 {
     if (CfgManager.GetInstance().SkillEffects.ContainsKey(id) == false)
     {
         Debug.LogErrorFormat("SkillEffect cfg not found: {0}", id);
         return;
     }
     ownSkill = skill;
     cfg      = CfgManager.GetInstance().SkillEffects[id];
 }
Beispiel #3
0
 private static bool IsSpecialValue(this CfgSkillEffect effect)
 {
     return(effect.Value >= 100000);
 }
Beispiel #4
0
        private static string GetValueTypeDescription(this CfgSkillEffect effect)
        {
            string FormattedValue = String.Format("{0:0.##}", effect.GetValue());
            string desc           = "";

            // Splitted by Value-Type :D
            if (effect.Value_type == 1)
            {
                desc += "Increase HP by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 2)
            {
                desc += "Increase attack by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 3)
            {
                desc += "Increase armor by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 4)
            {
                desc += "Increase speed by " + FormattedValue + ".";
            }
            if (effect.Value_type == 5)
            {
                desc += "Increase hit by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 6)
            {
                desc += "Increase dodge by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 7)
            {
                desc += "Increase crit by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 9)
            {
                desc += "Increase armor break by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 10)
            {
                desc += "Increase real damage by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 11)
            {
                desc += "Increase crit damage by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 12)
            {
                desc += "Increase control immune by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 13)
            {
                desc += "Increase damage immune by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 14)
            {
                desc += "Increase skill dmg by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 15)
            {
                desc += "Increase energy by " + FormattedValue + ".";
            }
            if (effect.Value_type == 16)
            {
                desc += "Increase damage against warrior by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 17)
            {
                desc += "Increase damage against mage by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 19)
            {
                desc += "Increase damage against ranger by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 20)
            {
                desc += "Increase damage against assassins by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 21)
            {
                desc += "Immune against DOT-effects.";
            }
            if (effect.Value_type == 24)
            {
                desc += "Immune against being burnt.";
            }
            if (effect.Value_type == 31)
            {
                desc += "Increase HP-recovery by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 32)
            {
                desc += "Reduces damage against DOT-effects by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 33)
            {
                desc += "Reduces crit received by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 41)
            {
                desc += "Increase all damage delt by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 1002)
            {
                desc += "Increase damage against frozen by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 1004)
            {
                desc += "Increase damage against poisoned by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 1006)
            {
                desc += "Increase damage against bleeding by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 1055)
            {
                desc += "Increase damage against isolated targets by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 2005)
            {
                desc += "Increase own burning damage by " + FormattedValue + "%.";
            }
            if (effect.Value_type == 7)
            {
                desc += "Increase healing by " + FormattedValue + "%.";
            }

            return(desc);
        }
Beispiel #5
0
 private static string GetValueDesciption(this CfgSkillEffect effect)
 {
     return(effect.VEffect.GetValueDescription());
 }
Beispiel #6
0
        public static string GetGenericDescription(this CfgSkillEffect effect)
        {
            effect.VEffect = new ValueEffect(effect.Value);

            string desc = "";

            // Launchtypes
            {
                if (effect.Launch_type == 1)
                {
                    desc += "When the skill is activated.";
                }
                else if (effect.Launch_type == 2)
                {
                    desc += "[PASSIVE]";
                }
                else if (effect.Launch_type == 3)
                {
                    desc += "After the Hero attacked normally.";
                }
                else if (effect.Launch_type == 4)
                {
                    desc += "When a normal Attack is critical.";
                }
                else if (effect.Launch_type == 5)
                {
                    desc += "When a normal attack got dodged by an enemy.";
                }
                else if (effect.Launch_type == 6)
                {
                    desc += "When damaging a debuffed enemy.";
                }
                else if (effect.Launch_type == 7)
                {
                    desc += "When damaging an enemy with a specific profession.";
                }
                else if (effect.Launch_type == 9)
                {
                    desc += "When the hero dies.";
                }
                else if (effect.Launch_type == 10)
                {
                    desc += "When an ally dies.";
                }
                else if (effect.Launch_type == 11)
                {
                    desc += "When being attacked.";
                }
                else if (effect.Launch_type == 12)
                {
                    desc += "When receiving a critical attack.";
                }
                else if (effect.Launch_type == 14)
                {
                    desc += "When an enemy dies.";
                }
                else if (effect.Launch_type == 15)
                {
                    desc += "[NORMAL ATTACK REPLACEMENT]";
                }
                else if (effect.Launch_type == 16)
                {
                    desc += "While being in the frontline.";
                }
                else if (effect.Launch_type == 17)
                {
                    desc += "While being in the backline.";
                }
                else if (effect.Launch_type == 18)
                {
                    desc += "While having less than a specific percentage of max HP.";
                }
                else if (effect.Launch_type == 19)
                {
                    desc += "When a new Round starts.";
                }
                else if (effect.Launch_type == 20)
                {
                    desc += "When an ally realeases a skill.";
                }
                else if (effect.Launch_type == 21)
                {
                    desc += "When an ally strikes back.";
                }
                else if (effect.Launch_type == 22)
                {
                    desc += "When dodging an attack.";
                }
                else if (effect.Launch_type == 23)
                {
                    desc += "When dodging an attack of an enemy hero.";
                }
                else if (effect.Launch_type == 24)
                {
                    desc += "When an ally releases a critical attack.";
                }
                else if (effect.Launch_type == 26)
                {
                    desc += "When taking deadly damage.";
                }
                else if (effect.Launch_type == 27)
                {
                    desc += "When the round ends.";
                }
                else if (effect.Launch_type == 28)
                {
                    desc += "When an enemy has 3 Cursed Marks.";
                }
                else if (effect.Launch_type == 30)
                {
                    desc += "When taking skill damage.";
                }
                else if (effect.Launch_type == 31)
                {
                    desc += "When an attack or an skill is critical.";
                }
                else if (effect.Launch_type == 34)
                {
                    desc += "When a hero dies.";
                }
                else if (effect.Launch_type == 37)
                {
                    desc += "After the skill has been released.";
                }
                else if (effect.Launch_type == 39)
                {
                    desc += "When dealing damage to an enemy.";
                }
                else if (effect.Launch_type == 40)
                {
                    desc += "When the round ends (special, takes DoT-Debuffs into account).";
                }
                else if (effect.Launch_type == 41)
                {
                    desc += "When being controlled (stunned, petrified, frozen, silenced, disarmed, mocked or tagged with the Seal of Light).";
                }
                else if (effect.Launch_type == 42)
                {
                    desc += "When reviving.";
                }
                else if (effect.Launch_type == 43)
                {
                    desc += "When the battle starts.";
                }
                else if (effect.Launch_type == 44)
                {
                    desc += "When receiving a status effect.";
                }
                else if (effect.Launch_type == 46)
                {
                    desc += "|UNSURE| Whenever an ally deals damage to enemies.";
                }
                else if (effect.Launch_type == 47)
                {
                    desc += "When a hero releases a skill.";
                }
                else if (effect.Launch_type == 48)
                {
                    desc += "When an enemy gets petrified.";
                }
                else if (effect.Launch_type == 50)
                {
                    desc += "When an isolated enemy dies.";
                }
                else if (effect.Launch_type == 52)
                {
                    desc += "At the beginning of a round.";
                }
                else if (effect.Launch_type == 53)
                {
                    desc += "After an attack was landed and there are still other ally asassins alive.";
                }
                else if (effect.Launch_type == 55)
                {
                    desc += "|UNSURE| When allies hit vulnerable targets or targets tagged with firemarks.";
                }
                else if (effect.Launch_type == 56)
                {
                    desc += "When the skill was a critical.";
                }
                else if (effect.Launch_type == 58)
                {
                    desc += "When receiving damage over a given percentage (|UNSURE|: 10%).";
                }
                else if (effect.Launch_type == 59)
                {
                    desc += "|UNSURE| When a normal attack strikes the enemy with the lowest HP.";
                }
                else if (effect.Launch_type == 61)
                {
                    desc += "When recovering HP.";
                }
                else if (effect.Launch_type == 62)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 63) // Mark remove?
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 64)
                {
                    desc += "|UNSURE| When gaining a mutation.";
                }
                else if (effect.Launch_type == 65)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 66)
                {
                    desc += "When gaining a mutation.";
                }
                else if (effect.Launch_type == 67)
                {
                    desc += "When damaging enemies below a certain energy threshold.";
                }
                else if (effect.Launch_type == 68)
                {
                    desc += "When ally resurrected.";
                }
                else if (effect.Launch_type == 69)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 72)
                {
                    desc += "|UNSURE| At the beginning of each round.";
                }
                else if (effect.Launch_type == 73)
                {
                    desc += "When an enemy gets controlled.";
                }
                else if (effect.Launch_type == 74)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 75)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 77)
                {
                    desc += "|TOTALLY UNKNOW - NEED EXPERT-LEVEL HELP HERE (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 78)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 79)
                {
                    desc += "When a hero resurrects.";
                }
                else if (effect.Launch_type == 80)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 81)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 82)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 83)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 84)
                {
                    desc += "When a refuged ally is attacked.";
                }
                else if (effect.Launch_type == 87)
                {
                    desc += "When dealing damage to an enemy (special).";
                }
                else if (effect.Launch_type == 88)
                {
                    desc += "|TOTALLY UNKNOW - NEED EXPERT-LEVEL HELP HERE (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 89)
                {
                    desc += "|UNSURE| After releasing a spell.";
                }
                else if (effect.Launch_type == 90)
                {
                    desc += "|TOTALLY UNKNOW - NEED EXPERT-LEVEL HELP HERE (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else if (effect.Launch_type == 91)
                {
                    desc += "|NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: launch_type #" + effect.Launch_type + ")|";
                }
                else
                {
                    desc += "|UNKOWN launch_type # " + effect.Launch_type + "! Please write me on Discord (and mention die # +- 'launch_type') and i'll fix it.|";
                }
            }

            desc += "\n";

            string FormattedValue = String.Format("{0:0.##}", effect.GetValue()); // 0 sind wichtige stellen, # werden weggelassen wenn möglich

            // effect_type. Is dependend of the Value...
            {
                string Unknown = "Unknown Effect Type - |NEED HELP :D Write me on Discord and i'll introduce you to the data :P (mention: effect_type #" + effect.Effect_type + ")|";
                string uData   = "(unknown/non-existing-data)";
                string Unsure  = "(UNSURE, report wrong data to me on discord :D)";
                if (effect.Effect_type == 1)
                {
                    desc += "Deals " + FormattedValue + "% Damage.";
                }
                else if (effect.Effect_type == 2)
                {
                    desc += "Recover " + FormattedValue + "% HP (of attack).";
                }
                else if (effect.Effect_type == 3)
                {
                    desc += "Apply effect (for limited duration): " + effect.VEffect.GetValueDescription();
                }
                else if (effect.Effect_type == 4)
                {
                    desc += "Apply effect (permanent): ";
                    desc += effect.GetValueTypeDescription();
                }
                else if (effect.Effect_type == 5)
                {
                    desc += (effect.GetValue() < 0 ? "Remove " : "Add ") + FormattedValue + " energy.";
                }
                else if (effect.Effect_type == 6)
                {
                    desc += "Recover " + FormattedValue + "% of max HP";
                }
                else if (effect.Effect_type == 7)
                {
                    desc += "Deal " + FormattedValue + "% extra damage against " + uData + " special targets.";
                }
                else if (effect.Effect_type == 8)
                {
                    desc += "Deal " + FormattedValue + "% damage against bleeding targets.";
                }
                else if (effect.Effect_type == 9)
                {
                    desc += "Deal " + FormattedValue + "% damage of max HP.";
                }
                else if (effect.Effect_type == 10)
                {
                    desc += "Remove all buffs of the target.";
                }
                else if (effect.Effect_type == 12)
                {
                    desc += "Recover " + FormattedValue + "% of max HP";
                }
                else if (effect.Effect_type == 13)
                {
                    desc += "Recover " + FormattedValue + "% extra HP for allies (from own spells).";
                }
                else if (effect.Effect_type == 14)
                {
                    desc += "Remove " + FormattedValue + " debuff.";
                }
                else if (effect.Effect_type == 15)
                {
                    desc += "Whenever an enemy got " + FormattedValue + " (-1 since its adding one, you dont see it in time tho) Cursed Marks, set them to 0.";
                }
                else if (effect.Effect_type == 16)
                {
                    desc += "Deal " + FormattedValue + "% extra damage against an enemy with (number of pre-effect) Cursed Marks";
                }
                else if (effect.Effect_type == 18)
                {
                    desc += "Change all damage to be critical.";
                }
                else if (effect.Effect_type == 19)
                {
                    desc += "Deal " + FormattedValue + "% damage of max HP.";
                }
                else if (effect.Effect_type == 20)
                {
                    desc += Unknown;
                }
                else if (effect.Effect_type == 21)
                {
                    desc += Unknown;
                }
                else if (effect.Effect_type == 22)
                {
                    desc += "Reflects " + FormattedValue + "% of damage.";
                }
                else if (effect.Effect_type == 23)
                {
                    desc += "Recover " + FormattedValue + "% of max HP.";
                }
                else if (effect.Effect_type == 24)
                {
                    desc += Unknown;
                }
                else if (effect.Effect_type == 25)
                {
                    desc += Unknown;
                }
                else if (effect.Effect_type == 26)
                {
                    desc += "Deal " + FormattedValue + "% damage for " + uData + " special effect on the target.";
                }
                else if (effect.Effect_type == 27)
                {
                    desc += "Deal " + FormattedValue + "% damage equally.";
                }
                else if (effect.Effect_type == 28)
                {
                    desc += "Remove " + FormattedValue + " random buffs.";
                }
                else if (effect.Effect_type == 29)
                {
                    desc += "Deal " + FormattedValue + "% damage which ignores armor.";
                }
                else if (effect.Effect_type == 30)
                {
                    desc += (effect.Value < 0 ? "Reduce " : "Add ");
                    if (effect.Value_type == -1)
                    {
                        desc += Math.Abs(effect.Value) + " round to each debuff (wounded, bleeding, poisoned and/or burnt).";
                    }
                    else if (effect.Value_type == 2)
                    {
                        desc += Math.Abs(effect.Value) + " round to the frozen/petrified debuff " + Unknown + ".";
                    }
                    else if (effect.Value_type == 1)
                    {
                        desc += Math.Abs(effect.Value) + " round to the stunned debuff " + Unknown + ".";
                    }
                    else if (effect.Value_type == 3)
                    {
                        desc += Math.Abs(effect.Value) + " round to the silenced/disarmed debuff " + Unknown + ".";
                    }
                    else if (effect.Value_type == 7)
                    {
                        desc += Math.Abs(effect.Value) + " round to the mocked debuff " + Unknown + ".";
                    }
                    else if (effect.Value_type == 54)
                    {
                        desc += Math.Abs(effect.Value) + " round to the Seal of Light debuff " + Unknown + ".";
                    }
                }
                else if (effect.Effect_type == 32)
                {
                    desc += "Normal attacks are hitting " + FormattedValue + " extra targets.";
                }
                else if (effect.Effect_type == 33)
                {
                    desc += "Trigger all DOT-effects of the target (does not remove a counter).";
                }
                else if (effect.Effect_type == 35)
                {
                    desc += "Increase attack by " + FormattedValue + "% of living enemies.";
                }
                else if (effect.Effect_type == 36)
                {
                    desc += "Recover " + FormattedValue + "% of recovered HP as HP.";
                }
                else if (effect.Effect_type == 37)
                {
                    desc += "Reflects " + FormattedValue + "% of damage.";
                }
                else if (effect.Effect_type == 16)
                {
                    desc += "Reflects " + FormattedValue + "% of damage.";
                }
                else if (effect.Effect_type == 16)
                {
                    desc += "Reflects " + FormattedValue + "% of damage.";
                }
                else if (effect.Effect_type == 16)
                {
                    desc += "Reflects " + FormattedValue + "% of damage.";
                }
                else
                {
                    desc += "Unimplemented :D Comming soon :P.";
                }
            }

            return(desc);
        }
Beispiel #7
0
    public void Init()
    {
        // monster
        TextAsset asset = ResourceManager.Instance.LoadAsset("cfg/monster") as TextAsset;
        JsonData  data  = JsonMapper.ToObject(asset.text);

        foreach (string key in data.Keys)
        {
            JsonData   value = data [key];
            CfgMonster cfg   = new CfgMonster();
            cfg.id     = int.Parse(key);
            cfg.name   = (string)value["name"];
            cfg.prefab = (string)value["prefab"];
            m_Monsters.Add(cfg.id, cfg);
        }

        // skill
        asset = ResourceManager.Instance.LoadAsset("cfg/skill") as TextAsset;
        data  = JsonMapper.ToObject(asset.text);
        foreach (string key in data.Keys)
        {
            JsonData value = data [key];
            CfgSkill cfg   = new CfgSkill();
            cfg.id         = int.Parse(key);
            cfg.name       = (string)value["name"];
            cfg.desc       = (string)value["desc"];
            cfg.animation  = (string)value["animation"];
            cfg.effect     = (string)value["effect"];
            cfg.sound      = (string)value["sound"];
            cfg.hiteffect  = (string)value["hiteffect"];
            cfg.spcost     = (int)value["spcost"];
            cfg.colddown   = (int)value["colddown"] / 1000f;
            cfg.targettype = (SkillTarget)(int)value["targettype"];
            cfg.aoe        = (byte)value["aoe"];
            JsonData effects = value["skilleffect"];
            cfg.skilleffects = new int[effects.Count];
            for (int i = 0; i < effects.Count; i++)
            {
                cfg.skilleffects[i] = (int)effects[i];
            }
            JsonData points = value["hitpoint"];
            cfg.hitpoints = new int[points.Count];
            for (int i = 0; i < points.Count; i++)
            {
                cfg.hitpoints[i] = (int)points[i];
            }

            m_Skills.Add(cfg.id, cfg);
        }

        // skill effect
        asset = ResourceManager.Instance.LoadAsset("cfg/skilleffect") as TextAsset;
        data  = JsonMapper.ToObject(asset.text);
        foreach (string key in data.Keys)
        {
            JsonData       value = data [key];
            CfgSkillEffect cfg   = new CfgSkillEffect();
            cfg.id        = int.Parse(key);
            cfg.name      = (string)value["name"];
            cfg.trigger   = (SkillEffectTrigger)(int)value["trigger"];
            cfg.operation = (SkillEffectOperation)(int)value["operation"];
            JsonData args = value["args"];
            cfg.args = new int[args.Count];
            for (int i = 0; i < args.Count; i++)
            {
                cfg.args[i] = (int)args[i];
            }
            m_SkillEffects.Add(cfg.id, cfg);
        }

        // skill summon
        asset = ResourceManager.Instance.LoadAsset("cfg/skillsummon") as TextAsset;
        data  = JsonMapper.ToObject(asset.text);
        foreach (string key in data.Keys)
        {
            JsonData       value = data [key];
            CfgSkillSummon cfg   = new CfgSkillSummon();
            cfg.id        = int.Parse(key);
            cfg.name      = (string)value["name"];
            cfg.prefab    = (string)value["prefab"];
            cfg.speed     = (int)value["speed"];
            cfg.life      = (int)value["life"] / 1000f;
            cfg.hitmax    = (int)value["hitmax"];
            cfg.hiteffect = (string)value["hiteffect"];
            JsonData effects = value["skilleffect"];
            cfg.skilleffects = new int[effects.Count];
            for (int i = 0; i < effects.Count; i++)
            {
                cfg.skilleffects[i] = (int)effects[i];
            }
            m_SkillSummons.Add(cfg.id, cfg);
        }

        // buff
        asset = ResourceManager.Instance.LoadAsset("cfg/buff") as TextAsset;
        data  = JsonMapper.ToObject(asset.text);
        foreach (string key in data.Keys)
        {
            JsonData value = data [key];
            CfgBuff  cfg   = new CfgBuff();
            cfg.id        = int.Parse(key);
            cfg.name      = (string)value["name"];
            cfg.prefab    = (string)value["prefab"];
            cfg.life      = (int)value["life"] / 1000f;
            cfg.operation = (BuffOperation)(int)value["operation"];
            JsonData args = value["args"];
            cfg.args = new int[args.Count];
            for (int i = 0; i < args.Count; i++)
            {
                cfg.args[i] = (int)args[i];
            }
            m_Buffs.Add(cfg.id, cfg);
        }
    }