Example #1
0
        static void CreateAttackSkills()
        {
            EffectSec effect1;

            // make the Slash Attack affix file
            effect1                   = new EffectSec("dynamic", "damage", 40, 80);
            effect1.duration          = "instant";
            effect1.statModifyName    = "melee";
            effect1.statModifyPercent = "100";
            CreateSkillAffix("WhirlingGust", new EffectSec[] { effect1 });

            // prepare the Slash Attack skill file
            SkillFile skill = new SkillFile("WhirlingGust", "warrior/whirlinggust/");

            skill.name              = "Whirling Gust";
            skill.displayName       = "Slash Attack";
            skill.description       = "Attacks all foes in front of you\\nwith all equipped weapons\\n";
            skill.skillIconActive   = "skill_slash";
            skill.skillIconInactive = "skill_slash_gray";
            skill.animation         = "Special_Cleave";
            skill.animationDW       = "Special_DWCleave";
            skill.range             = 2;
            skill.requirementRight  = "melee";
            skill.requirementLeft   = "melee";
            skill.maxInvestLevel    = 100;
            skill.uniqueGUID        = 7711097244085326302;
            CreateSkillLevels(skill, "WhirlingGust", "media/skills/warrior/whirlinggust/whirlinggust.layout", true);
            skill.Create();
        }
Example #2
0
        static void CreatePassiveSkills()
        {
            EffectSec effect1, effect2, effect3;
            SkillFile skill;

            // make Adventurer affix
            effect1               = new EffectSec("passive", "xp gain bonus", 200, 200);
            effect1.name          = "XPGAIN";
            effect1.duration      = "always";
            effect1.graphOverride = "linear_graph";
            effect2               = new EffectSec("passive", "fame gain bonus", 200, 200);
            effect2.name          = "FAMEGAIN";
            effect2.duration      = "always";
            effect2.graphOverride = "linear_graph";
            effect3               = new EffectSec("passive", "potion efficiency", 100, 100);
            effect3.name          = "POTIONEFF";
            effect3.duration      = "always";
            effect3.graphOverride = "mastery_graph";
            CreateSkillAffix("skill_adventurer_mastery", new EffectSec[] { effect1, effect2, effect3 });

            // make Adventurer skill
            skill             = new SkillFile("Adventurer", "shared/passives/");
            skill.displayName = skill.name;
            skill.description = "Improves the potency of potions, increases the rate of Experience and Fame gain, "
                                + "and reduces resurrection penalties";
        }
Example #3
0
        static void CreateSkillLevels(SkillFile skill, string affixName, string layoutFile, bool isAttack)
        {
            LevelSec levelSec;
            // mana cost progression by skill level
            double manaCost = 2;
            double manaInc1 = 1;
            double manaInc2 = 0;
            double manaInc3 = 0.1;
            double manaInc4 = 0.005;
            // level requirement progression by skill level
            int levelReq    = 1;
            int levelReqInc = 1;
            // affix level progression by skill level
            double affixLevel     = 1;
            double affixLevelInc  = 2;
            double affixLevelInc2 = 0.106;

            if (!isAttack)
            {
                affixLevelInc  = 1;
                affixLevelInc2 = 0;
            }
            // add all the skill levels
            for (int skillLvl = 1; skillLvl <= 120; ++skillLvl)
            {
                // prepare all the needed sections
                if (isAttack)
                {
                    levelSec = new LevelSec(skillLvl, (int)(manaCost + 0.5), levelReq);
                }
                else
                {
                    levelSec = new LevelSec(skillLvl, 0, levelReq);
                }
                if (skillLvl > 100)
                {
                    levelSec.levelRequired = 0;
                }
                EventSec   eventSec   = new EventSec(EventSec.EVENT_TRIGGER, layoutFile);
                AffixesSec affixesSec = new AffixesSec(affixName);
                affixesSec.affixLevel = (int)(affixLevel + 0.5);
                // add the sections in the proper order
                eventSec.AddAffixes(affixesSec);
                levelSec.AddEvent(eventSec);
                skill.AddLevel(levelSec);

                // increase mana cost
                manaInc3 += manaInc4;
                manaInc2 += manaInc3;
                manaInc1 += manaInc2;
                manaCost += manaInc1;
                // increase level requirements
                if (skillLvl % 10 == 0)
                {
                    ++levelReqInc;
                }
                levelReq += levelReqInc;
                // increase affix level
                affixLevelInc += affixLevelInc2;
                affixLevel    += affixLevelInc;
            }
        }