Example #1
0
        public static List <Level> Levels(string pathName)
        {
            Specialization chosenPath = ChooseSpecialization(pathName, Classes.Barbarian);
            Level          level1     = new BarbarianLevel(1, 2, 2, 2);

            level1.AddFeature(new Feature("Rage", "Give in to your anger and rip through your enemies while their weapons become nothing but inconveniences",
                                          "You can enter a rage on your turn as a bonus action, if you aren't wearing heavy armour you:\n" +
                                          "Have advantage on strenght checks and strenght saving throws.\n" +
                                          "Add a rage damage bonus when you make a melee attack using strenght according to your level.\n" +
                                          "Have resistance to bludgeoning, piercing and slashing damage.\n" +
                                          "Cannot cast spells.\n\n" +
                                          "Your rage lasts for 10 rounds. Your rage ends if you:\n" +
                                          "Are knocked unconscious.\n" +
                                          "Haven't attacked a creature or taken damage since your last turn when your turn ends.\n" +
                                          "End it with a bonus action on your turn.\n\n" +
                                          "You have a maximum amount of times you can rage corresponding with your level, once you reached this limit you need a long rest before you can rage again."));
            level1.AddFeature(new Feature("Unarmoured defence", "There is no armour stronger than your own skin.", "If you are not wearing armour, your armour class is 10 + your dexterity modifier + your constitution modifier\nYou can use a shield and still gain this benefit"));

            Level level2 = new BarbarianLevel(2, 2, 2, 2);

            level2.AddFeature(new Feature("Reckless attack", "Throw aside all concern for defence to attack with fierce desperation.", "When you make your first attack on your turn, you can decide to attack recklessly.\nDoing so gives you advantage on melee weapon attack rolls using Strength during this turn, but attack rolls against you have advantage until your next turn."));
            level2.AddFeature(new Feature("Danger sense", "You gain an uncanny sense of when things nearby aren't as they should be, giving you an edge when you dodge away from danger.", "You have advantage on Dexterity saving throws against effects that you can see, such as traps and spells. To gain this benefit, you can't be blinded, deafened, or incapacitated."));

            Level level3 = new BarbarianLevel(3, 2, 3, 2);

            level3.AddFeature(chosenPath.FindFeature(level3.LevelNumber));


            List <Level> Levels = new List <Level>
            {
                level1,
                level2,
                level3
            };


            string[] row4  = new string[] { "4", "+2", "Ability Score Improvement", "3", "+2" };
            string[] row5  = new string[] { "5", "+3", "Extra Attack, Fast Movement", "3", "+2" };
            string[] row6  = new string[] { "6", "+3", "Path feature", "4", "+2" };
            string[] row7  = new string[] { "7", "+3", "Feral instinct", "4", "+2" };
            string[] row8  = new string[] { "8", "+3", "Ability Score Improvement", "4", "+2" };
            string[] row9  = new string[] { "9", "+4", "Brutal critical (one use)", "4", "+3" };
            string[] row10 = new string[] { "10", "+4", "Path feature", "4", "+3" };
            string[] row11 = new string[] { "11", "+4", "Relentless Rage", "4", "+3" };
            string[] row12 = new string[] { "12", "+4", "Ability Score Improvement", "5", "+3" };
            string[] row13 = new string[] { "13", "+5", "Brutal critical (two uses)", "5", "+3" };
            string[] row14 = new string[] { "14", "+5", "Path feature", "5", "+3" };
            string[] row15 = new string[] { "15", "+5", "Persistent Rage", "5", "+3" };
            string[] row16 = new string[] { "16", "+5", "Ability Score Improvement", "5", "+4" };
            string[] row17 = new string[] { "17", "+6", "Brutal critical (three uses)", "6", "+4" };
            string[] row18 = new string[] { "18", "+6", "Indomitable Might", "6", "+4" };
            string[] row19 = new string[] { "19", "+6", "Ability Score Improvement", "6", "+4" };
            string[] row20 = new string[] { "20", "+6", "Primal Champion", "unlimited", "+4" };
            return(Levels);
        }
        public static List <Specialization> GetSpecializationList(Classes characterClass)
        {
            List <Specialization> output = null;

            switch (characterClass)
            {
            case Classes.Barbarian:
                output = BarbarianLevel.GetSpecializations();
                break;
            }
            return(output);
        }