Beispiel #1
0
        protected override Archetypes <string> GetRandomObj()
        {
            var a = new Archetypes <string>();
            var c = GetRandom.Count();

            for (var i = 0; i < c; i++)
            {
                a.Add(GetRandom.String());
            }
            return(a);
        }
Beispiel #2
0
 public void IsSetTest()
 {
     Obj = new Archetypes <string> {
         IsSet = true
     };
     Obj.Add("A");
     Assert.AreEqual(1, Obj.Count);
     Obj.Add("A");
     Assert.AreEqual(1, Obj.Count);
     Obj.Insert(0, "B");
     Assert.AreEqual(2, Obj.Count);
     Obj.Insert(0, "B");
     Assert.AreEqual(2, Obj.Count);
     Obj.AddRange(new List <string> {
         "C", "D"
     });
     Assert.AreEqual(4, Obj.Count);
     Obj.AddRange(new List <string> {
         "C", "D", "E"
     });
     Assert.AreEqual(5, Obj.Count);
 }
        public EntityIndex Alloc(EntityArchetype entityArchetype)
        {
            var types  = _archetypeManager.GetArchetypeTypeList(entityArchetype);
            int offset = -1;

            for (int i = 0; i < Archetypes.Count; ++i)
            {
                if (Archetypes[i].Equals(types) && !ChunkData[i].Full)
                {
                    offset = ChunkData[i].Alloc();
                    return(new EntityIndex {
                        ChunkIndex = i, ChunkOffset = offset
                    });
                }
            }

            Archetypes.Add(entityArchetype);
            ChunkData.Add(new ArchetypeChunk(types));

            offset = ChunkData.Last().Alloc();
            return(new EntityIndex {
                ChunkIndex = ChunkData.Count - 1, ChunkOffset = offset
            });
        }
        public Antipaladin()
        {
            Name            = "Antipaladin";
            Alignment       = "Chaotic Evil";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Good;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null),
                    new CasterLevel(2, null),
                    new CasterLevel(3, null),
                    new CasterLevel(4, null, 0),
                    new CasterLevel(5, null, 1),
                    new CasterLevel(6, null, 1),
                    new CasterLevel(7, null, 1, 0),
                    new CasterLevel(8, null, 1, 1),
                    new CasterLevel(9, null, 2, 1),
                    new CasterLevel(10, null, 2, 1, 0),
                    new CasterLevel(11, null, 2, 1, 1),
                    new CasterLevel(12, null, 2, 2, 1),
                    new CasterLevel(13, null, 3, 2, 1, 0),
                    new CasterLevel(14, null, 3, 2, 1, 1),
                    new CasterLevel(15, null, 3, 2, 2, 1),
                    new CasterLevel(16, null, 3, 3, 2, 1),
                    new CasterLevel(17, null, 4, 3, 2, 1),
                    new CasterLevel(18, null, 4, 3, 2, 2),
                    new CasterLevel(19, null, 4, 3, 3, 2),
                    new CasterLevel(20, null, 4, 4, 3, 3),
                }
            };

            ClassAbilities = new List <ClassAbility>
            {
                AuraOfEvil,
                DetectGood,
                SmiteGood1,
                SmiteGood2,
                SmiteGood3,
                SmiteGood4,
                SmiteGood5,
                SmiteGood6,
                SmiteGood7,
                TouchOfCorruption,
                UnholyResilience,
                AuraOfCowardice,
                PlagueBrunger,
                Cruelty3,
                Cruelty6,
                Cruelty9,
                Cruelty12,
                Cruelty15,
                Cruelty18,
                ChannelNegativeEnergy,
                Spells,
                FiendishBoon,
                AuraOfDespair,
                AuraOfVengeance,
                AuraOfSin,
                AuraOfDepravity,
                UnholyChampion,
            };

            Archetypes.Add(new BlightedMyrmidon(this));
            Archetypes.Add(new DreadVanguard(this));
            Archetypes.Add(new Fearmonger(this));
            Archetypes.Add(new Insinuator(this));
            Archetypes.Add(new IronTyrant(this));
            Archetypes.Add(new KnightOfTheSepulcher(this));
            Archetypes.Add(new RoughRampager(this));
            Archetypes.Add(new SealBreaker(this));
            Archetypes.Add(new Tyrant(this));
        }
        public Ranger()
        {
            Name            = "Ranger";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Good;
            WillSave        = SavingThrow.Bad;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null),
                    new CasterLevel(2, null),
                    new CasterLevel(3, null),
                    new CasterLevel(4, null, 0),
                    new CasterLevel(5, null, 1),
                    new CasterLevel(6, null, 1),
                    new CasterLevel(7, null, 1, 0),
                    new CasterLevel(8, null, 1, 1),
                    new CasterLevel(9, null, 2, 1),
                    new CasterLevel(10, null, 2, 1, 0),
                    new CasterLevel(11, null, 2, 1, 1),
                    new CasterLevel(12, null, 2, 2, 1),
                    new CasterLevel(13, null, 3, 2, 1, 0),
                    new CasterLevel(14, null, 3, 2, 1, 1),
                    new CasterLevel(15, null, 3, 2, 2, 1),
                    new CasterLevel(16, null, 3, 3, 2, 1),
                    new CasterLevel(17, null, 4, 3, 2, 1),
                    new CasterLevel(18, null, 4, 3, 2, 2),
                    new CasterLevel(19, null, 4, 3, 3, 2),
                    new CasterLevel(20, null, 4, 4, 3, 3),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                new ClassAbility {
                    Name = "1st Favored Enemy", Level = 1
                },
                new ClassAbility {
                    Name = "2nd Favored Enemy", Level = 5
                },
                new ClassAbility {
                    Name = "3rd Favored Enemy", Level = 10
                },
                new ClassAbility {
                    Name = "4th Favored Enemy", Level = 15
                },
                new ClassAbility {
                    Name = "5th Favored Enemy", Level = 20
                },
                new ClassAbility {
                    Name = "Track", Level = 1
                },
                new ClassAbility {
                    Name = "Wild Empathy", Level = 1
                },
                new ClassAbility {
                    Name = "Combat Style Feat", Level = 2
                },
                new ClassAbility {
                    Name = "Combat Style Feat", Level = 6
                },
                new ClassAbility {
                    Name = "Combat Style Feat", Level = 10
                },
                new ClassAbility {
                    Name = "Combat Style Feat", Level = 14
                },
                new ClassAbility {
                    Name = "Combat Style Feat", Level = 18
                },
                new ClassAbility {
                    Name = "Endurance", Level = 3
                },
                new ClassAbility {
                    Name = "1st Favored Terrain", Level = 3
                },
                new ClassAbility {
                    Name = "2nd Favored Terrain", Level = 8
                },
                new ClassAbility {
                    Name = "3rd Favored Terrain", Level = 13
                },
                new ClassAbility {
                    Name = "4th Favored Terrain", Level = 18
                },
                new ClassAbility {
                    Name = "Hunter's Bond", Level = 4
                },
                new ClassAbility {
                    Name = "Spells", Level = 4
                },
                new ClassAbility {
                    Name = "Woodland Stride", Level = 7
                },
                new ClassAbility {
                    Name = "Swift Tracker", Level = 8
                },
                new ClassAbility {
                    Name = "Evasion", Level = 9
                },
                new ClassAbility {
                    Name = "Quarry", Level = 11
                },
                new ClassAbility {
                    Name = "Camouflage", Level = 12
                },
                new ClassAbility {
                    Name = "Improved Evasion", Level = 16
                },
                new ClassAbility {
                    Name = "Hide in Plain Sight", Level = 17
                },
                new ClassAbility {
                    Name = "Improved Quarry", Level = 19
                },
                new ClassAbility {
                    Name = "Master Hunter", Level = 20
                },
            };

            Archetypes.Add(AbengedoDiver);
            Archetypes.Add(BattleScout);
            Archetypes.Add(BeastMaster);
            Archetypes.Add(Blightwarden);
        }
Beispiel #6
0
 public void CountTest()
 {
     list.Add("C");
     Assert.AreEqual(1, list.Count);
 }
        public Paladin(decimal level, string archetype)
        {
            HitDice = "d10";
            Archetypes.Add("Oath of Devotion");
            Archetypes.Add("Oath of the Ancients");
            Archetypes.Add("Oath of Vengeance");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Medium Armor");
            ItemProficiencies.Add("Heavy Armor");
            ItemProficiencies.Add("Shield");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Martial Weapon");
            ClassFeatures.Add("Divine Sense");
            ClassFeatures.Add("Lay on Hands");
            if (level >= 2)
            {
                ClassFeatures.Add("Fighting Style");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Spellcasting");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Divine Smite");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Divine Health");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Sacred Oath");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Extra Attack");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Aura of Protection");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Aura of Courage");
            }
            if (level >= 11)
            {
                ClassFeatures.Add("Improved Divine Smite");
            }
            if (level >= 14)
            {
                ClassFeatures.Add("Cleansing Touch");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Oath of Devotion":
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Aura of Devotion");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Purity of Spirit");
                }
                if (level >= 20)
                {
                    ArchetypeFeats.Add("Holy Nimbus");
                }
                break;

            case "Oath of the Ancients":
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Aura of Warding");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Undying Sentinel");
                }
                if (level >= 20)
                {
                    ArchetypeFeats.Add("Elder Champion");
                }
                break;

            case "Oath of Vengeance":
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Relentless Avenger");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Soul of Vengeance");
                }
                if (level >= 20)
                {
                    ArchetypeFeats.Add("Avenging Angel");
                }
                break;
            }
        }
        public Bard(decimal level, string archetype)
        {
            HitDice = "d8";
            Archetypes.Add("College of Lore");
            Archetypes.Add("College of Valor");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Longsword");
            ItemProficiencies.Add("Rapier");
            ItemProficiencies.Add("Shortsword");
            ItemProficiencies.Add("Hand Crossbow");
            ClassFeatures.Add("Spellcasting");
            ClassFeatures.Add("Bardic Inspiration");
            if (level >= 2)
            {
                ClassFeatures.Add("Jack of all Trades");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Song of Rest");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Bard College");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Expertise");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Font of Inspiration");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Countercharm");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Magical Secrets");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Superior Inspiration");
            }
            switch (archetype)
            {
            case "":
                break;

            case "College of Lore":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Bonus Proficiencies");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Cutting Word");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Additional Magical Secrets");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Peerless Skill");
                }
                break;

            case "College of Valor":
                if (level >= 3)
                {
                    ItemProficiencies.Add("Medium Amor");
                }
                if (level >= 3)
                {
                    ItemProficiencies.Add("Shields");
                }
                if (level >= 3)
                {
                    ItemProficiencies.Add("Martial");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Combat Inspiration");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Extra Attack");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Battle Magic");
                }
                break;
            }
        }
        public Rogue(decimal level, string archetype)
        {
            HitDice = "d8";
            Archetypes.Add("Assasin");
            Archetypes.Add("Thief");
            Archetypes.Add("Arcane Trickster");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Hand Crossbow");
            ItemProficiencies.Add("Longsword");
            ItemProficiencies.Add("Rapier");
            ItemProficiencies.Add("Shortsword");
            ItemProficiencies.Add("Thieve's Tool");
            ClassFeatures.Add("Expertise");
            ClassFeatures.Add("Sneak Attack");
            ClassFeatures.Add("Thieves' Cant");
            if (level >= 2)
            {
                ClassFeatures.Add("Cunning Action");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Roguish Archetype");
            }
            if (level >= 4)
            {
                ClassFeatures.Add("Ability Score Improvement");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Uncanny Dodge");
            }
            if (level >= 7)
            {
                ClassFeatures.Add("Evasion");
            }
            if (level >= 11)
            {
                ClassFeatures.Add("Reliable Talent");
            }
            if (level >= 14)
            {
                ClassFeatures.Add("Blindsense");
            }
            if (level >= 15)
            {
                ClassFeatures.Add("Slippery Mind");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Elusive");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Stroke of Luck");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Assasin":
                if (level >= 3)
                {
                    ItemProficiencies.Add("Disguise Kit");
                }
                if (level >= 3)
                {
                    ItemProficiencies.Add("Poisoners Kit");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Assasinate");
                }
                if (level >= 9)
                {
                    ArchetypeFeats.Add("Inflirtation Expertise");
                }
                if (level >= 13)
                {
                    ArchetypeFeats.Add("Imposter");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Death Strike");
                }
                break;

            case "Thief":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Fast Hands");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Second Story Work");
                }
                if (level >= 9)
                {
                    ArchetypeFeats.Add("Supreme Sneak");
                }
                if (level >= 13)
                {
                    ArchetypeFeats.Add("Use Magic Device");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Thief's Reflexes");
                }
                break;

            case "Arcane Trickster":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Spellcasting");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Mage Hand Legerdemain");
                }
                if (level >= 9)
                {
                    ArchetypeFeats.Add("Magic Ambush");
                }
                if (level >= 13)
                {
                    ArchetypeFeats.Add("Versatile Trickster");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Spell Thief");
                }
                break;
            }
        }
Beispiel #10
0
        public Cavalier()
        {
            Name            = "Cavalier";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Bad;
            ClassAbilities  = new List <ClassAbility>
            {
                Challenge1,
                Challenge2,
                Challenge3,
                Challenge4,
                Challenge5,
                Challenge6,
                Challenge7,
                Mount,
                Order,
                Tactician,
                OrderAbility2,
                OrderAbility8,
                OrderAbility15,
                CavaliersCharge,
                ExpertTrainer,
                Banner,
                BonusFeat6,
                BonusFeat12,
                BonusFeat18,
                GreaterTactician,
                MightyCharge,
                DemandingChallenge,
                GreaterBanner,
                MasterTactician,
                SupremeCharge,
            };

            Archetypes.Add(new BeastRider(this));
            Archetypes.Add(new Castellan(this));
            Archetypes.Add(new Charger(this));
            Archetypes.Add(new CircuitJudge(this));
            Archetypes.Add(new Constable(this));
            Archetypes.Add(new CourtlyKnight(this));
            Archetypes.Add(new DaringChampion(this));
            Archetypes.Add(new DaringGeneral(this));
            Archetypes.Add(new DiscipleOfThePike(this));
            Archetypes.Add(new Drakerider(this));
            Archetypes.Add(new Emissary(this));
            Archetypes.Add(new Esquire(this));
            Archetypes.Add(new FellRider(this));
            Archetypes.Add(new FirstMothersFang(this));
            Archetypes.Add(new Gallant(this));
            Archetypes.Add(new Gendarme(this));
            Archetypes.Add(new GhostRider(this));
            Archetypes.Add(new GreenKnight(this));
            Archetypes.Add(new HeraldSquire(this));
            Archetypes.Add(new HonorGuard(this));
            Archetypes.Add(new HoodedKnight(this));
            Archetypes.Add(new Huntmaster(this));
            Archetypes.Add(new Hussar(this));
            Archetypes.Add(new KnightOfArnisant(this));
            Archetypes.Add(new LuringCavalier(this));
            Archetypes.Add(new Musketeer(this));
            Archetypes.Add(new Oceanrider(this));
            Archetypes.Add(new QabaratOutrider(this));
            Archetypes.Add(new QadiranHorselord(this));
            Archetypes.Add(new SaurianChampion(this));
            Archetypes.Add(new SisterInArms(this));
            Archetypes.Add(new SpellscarDrifter(this));
            Archetypes.Add(new StandardBearer(this));
            Archetypes.Add(new Strategist(this));
            Archetypes.Add(new Verdivant(this));
            Archetypes.Add(new VerminTamer(this));
            Archetypes.Add(new WaveRider(this));
        }
Beispiel #11
0
        public Paladin()
        {
            Name            = "Paladin";
            Alignment       = "Lawful Good";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Good;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null),
                    new CasterLevel(2, null),
                    new CasterLevel(3, null),
                    new CasterLevel(4, null, 0),
                    new CasterLevel(5, null, 1),
                    new CasterLevel(6, null, 1),
                    new CasterLevel(7, null, 1, 0),
                    new CasterLevel(8, null, 1, 1),
                    new CasterLevel(9, null, 2, 1),
                    new CasterLevel(10, null, 2, 1, 0),
                    new CasterLevel(11, null, 2, 1, 1),
                    new CasterLevel(12, null, 2, 2, 1),
                    new CasterLevel(13, null, 3, 2, 1, 0),
                    new CasterLevel(14, null, 3, 2, 1, 1),
                    new CasterLevel(15, null, 3, 2, 2, 1),
                    new CasterLevel(16, null, 3, 3, 2, 1),
                    new CasterLevel(17, null, 4, 3, 2, 1),
                    new CasterLevel(18, null, 4, 3, 2, 2),
                    new CasterLevel(19, null, 4, 3, 3, 2),
                    new CasterLevel(20, null, 4, 4, 3, 3),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                _auraOfGood,
                _detectEvil,
                _smiteEvil1,
                _smiteEvil2,
                _smiteEvil3,
                _smiteEvil4,
                _smiteEvil5,
                _smiteEvil6,
                _smiteEvil7,
                _layOnHands,
                _divineGrace,
                _auraOfCourage,
                _divineHealth,
                _mercy3,
                _mercy6,
                _mercy9,
                _mercy12,
                _mercy15,
                _mercy18,
                _channelPositiveEnergy,
                _spells,
                _divineBond,
                _auraOfResolve,
                _auraOfJustice,
                _auraOfFaith,
                _auraOfRighteousness,
                _holyChampion,
            };

            Archetypes.Add(VirtuousBravo);
        }
        public Monk(decimal level, string archetype)
        {
            HitDice = "d8";
            Archetypes.Add("Way of the Open Hand");
            Archetypes.Add("Way of Shadow");
            Archetypes.Add("Way of the Four Elements");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Shorsword");
            ClassFeatures.Add("Unarmored Defense");
            ClassFeatures.Add("Martial Arts");
            if (level >= 2)
            {
                ClassFeatures.Add("Ki");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Unarmored movement");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Monastic Tradition");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Deflect Missles");
            }
            if (level >= 4)
            {
                ClassFeatures.Add("Slow Fall");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Extra Attack");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Stunning Strike");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Ki Empowered Strikes");
            }
            if (level >= 7)
            {
                ClassFeatures.Add("Evasion");
            }
            if (level >= 7)
            {
                ClassFeatures.Add("Stillness of Mind");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Purity of Body");
            }
            if (level >= 13)
            {
                ClassFeatures.Add("Tongue of Moon");
            }
            if (level >= 14)
            {
                ClassFeatures.Add("Diamond Soul");
            }
            if (level >= 15)
            {
                ClassFeatures.Add("Timeless Body");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Empty Body");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Perfect Self");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Way of the Open Hand":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Open Hand Technique");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Wholeness of Body");
                }
                if (level >= 11)
                {
                    ArchetypeFeats.Add("Tranquility");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Quivering Palm");
                }
                break;

            case "Way of Shadow":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Shadow Arts");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Shadow Step");
                }
                if (level >= 11)
                {
                    ArchetypeFeats.Add("Cloak of Shadows");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Opportunity");
                }
                break;

            case "Way of the Four Elements":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Disciple of the Elements");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Elemental Disciplines");
                }
                break;
            }
        }
        public Barbarian()
        {
            Name            = "Barbarian";
            Alignment       = "Any Nonlawful";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Bad;
            ClassAbilities  = new List <ClassAbility>
            {
                FastMovement,
                Rage,
                RagePower2,
                RagePower4,
                RagePower6,
                RagePower8,
                RagePower10,
                RagePower12,
                RagePower14,
                RagePower16,
                RagePower18,
                RagePower20,
                UncannyDodge,
                TrapSense1,
                TrapSense2,
                TrapSense3,
                TrapSense4,
                TrapSense5,
                TrapSense6,
                ImprovedUncannyDodge,
                DamageReduction1,
                DamageReduction2,
                DamageReduction3,
                DamageReduction4,
                DamageReduction5,
                GreaterRage,
                IndomitableWill,
                TirelessRage,
                MightyRage,
            };

            Archetypes.Add(new ArmoredHulk(this));
            Archetypes.Add(new BeastkinBerserker(this));
            Archetypes.Add(new Breaker(this));
            Archetypes.Add(new BrutalPugilist(this));
            Archetypes.Add(new BrutishSwamper(this));
            Archetypes.Add(new CaveDweller(this));
            Archetypes.Add(new DeepwaterRager(this));
            Archetypes.Add(new Dreadnought(this));
            Archetypes.Add(new DrunkenBrute(this));
            Archetypes.Add(new DrunkenRager(this));
            Archetypes.Add(new ElementalKin(this));
            Archetypes.Add(new FearsomeDefender(this));
            Archetypes.Add(new FeralGnasher(this));
            Archetypes.Add(new Flesheater(this));
            Archetypes.Add(new GeminateInvoker(this));
            Archetypes.Add(new GiantStalker(this));
            Archetypes.Add(new HatefulRager(this));
            Archetypes.Add(new Hurler(this));
            Archetypes.Add(new InvulnerableRager(this));
            Archetypes.Add(new JungleRager(this));
            Archetypes.Add(new MadDog(this));
            Archetypes.Add(new Mooncursed(this));
            Archetypes.Add(new MountedFury(this));
            Archetypes.Add(new NumerianLiberator(this));
            Archetypes.Add(new PackHunter(this));
            Archetypes.Add(new PackRager(this));
            Archetypes.Add(new PrimalHunter(this));
            Archetypes.Add(new RagingCannibal(this));
            Archetypes.Add(new SavageBarbarian(this));
            Archetypes.Add(new SavageTechnologist(this));
            Archetypes.Add(new ScarredRager(this));
            Archetypes.Add(new SeaReaver(this));
            Archetypes.Add(new ShoantiBurnRider(this));
            Archetypes.Add(new Superstitious(this));
            Archetypes.Add(new TitanMauler(this));
            Archetypes.Add(new TotemWarrior());
            Archetypes.Add(new TruePrimitive(this));
            Archetypes.Add(new UntamedRager(this));
            Archetypes.Add(new UrbanBarbarian(this));
            Archetypes.Add(new WildRager(this));
            Archetypes.Add(new Wildborn(this));
        }
Beispiel #14
0
        public Alchemist()
        {
            Name            = "Alchemist";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Medium;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Good;
            WillSave        = SavingThrow.Bad;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting()
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null, 1),
                    new CasterLevel(2, null, 2),
                    new CasterLevel(3, null, 3),
                    new CasterLevel(4, null, 3, 1),
                    new CasterLevel(5, null, 4, 2),
                    new CasterLevel(6, null, 4, 3),
                    new CasterLevel(7, null, 4, 3, 1),
                    new CasterLevel(8, null, 4, 4, 2),
                    new CasterLevel(9, null, 5, 4, 3),
                    new CasterLevel(10, null, 5, 4, 3, 1),
                    new CasterLevel(11, null, 5, 4, 4, 2),
                    new CasterLevel(12, null, 5, 5, 4, 3),
                    new CasterLevel(13, null, 5, 5, 4, 3, 1),
                    new CasterLevel(14, null, 5, 5, 4, 4, 2),
                    new CasterLevel(15, null, 5, 5, 5, 4, 3),
                    new CasterLevel(16, null, 5, 5, 5, 4, 3, 1),
                    new CasterLevel(17, null, 5, 5, 5, 4, 4, 2),
                    new CasterLevel(18, null, 5, 5, 5, 5, 4, 3),
                    new CasterLevel(19, null, 5, 5, 5, 5, 5, 4),
                    new CasterLevel(20, null, 5, 5, 5, 5, 5, 5),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                Alchemy,
                Bomb1,
                Bomb2,
                Bomb3,
                Bomb4,
                Bomb5,
                Bomb6,
                Bomb7,
                Bomb8,
                Bomb9,
                Bomb10,
                BrewPotion,
                Extracts,
                Mutagen,
                ThrowAnything,
                Discovery2,
                Discovery4,
                Discovery6,
                Discovery8,
                Discovery10,
                Discovery12,
                Discovery14,
                Discovery16,
                Discovery18,
                PoisonResistance2,
                PoisonResistance4,
                PoisonResistance6,
                PoisonImmunity,
                PoisonUse,
                SwiftAlchemy,
                SwiftPoisoning,
                PersistentMutagen,
                InstantAlchemy,
                GrandDiscovery,
            };

            Archetypes.Add(new Aerochemist(this));
            Archetypes.Add(new AlchemicalSapper(this));
            Archetypes.Add(new AlchemicalTrapper(this));
            Archetypes.Add(new Aquachymist(this));
            Archetypes.Add(new Beastmorph(this));
            Archetypes.Add(new BlazingTorchbearer(this));
            Archetypes.Add(new Blightseeker(this));
            Archetypes.Add(new BloodAlchemist(this));
            Archetypes.Add(new BogbornAlchemist(this));
            Archetypes.Add(new BrambleBrewer(this));
            Archetypes.Add(new Chirurgeon(this));
            Archetypes.Add(new CloneMaster(this));
            Archetypes.Add(new Concocter(this));
            Archetypes.Add(new ConstructRider(this));
            Archetypes.Add(new CrimsonChymist(this));
            Archetypes.Add(new Cruourchymist(this));
            Archetypes.Add(new CryptBreaker(this));
            Archetypes.Add(new DeepBomber(this));
            Archetypes.Add(new DimensionalExcavator(this));
            Archetypes.Add(new DragonbloodChymist(this));
            Archetypes.Add(new Ectochymist(this));
            Archetypes.Add(new EctoplasmMaster(this));
            Archetypes.Add(new EldritchPoisoner(this));
            Archetypes.Add(new Energist(this));
            Archetypes.Add(new EnergyScientist(this));
            Archetypes.Add(new Fermenter(this));
            Archetypes.Add(new FireBomber(this));
            Archetypes.Add(new FirstWorldInnovator(this));
            Archetypes.Add(new GloomChymist(this));
            Archetypes.Add(new Grenadier(this));
            Archetypes.Add(new GrenadierMC(this));
            Archetypes.Add(new GunChemist(this));
            Archetypes.Add(new Herbalist(this));
            Archetypes.Add(new Homunculist(this));
            Archetypes.Add(new Horticulturist(this));
            Archetypes.Add(new IceChemist(this));
            Archetypes.Add(new InspiredChemist(this));
            Archetypes.Add(new InternalAlchemist(this));
            Archetypes.Add(new Interrogator(this));
            Archetypes.Add(new MadScientist(this));
            Archetypes.Add(new Metamorph(this));
            Archetypes.Add(new Mindchemist(this));
            Archetypes.Add(new Mixologist(this));
            Archetypes.Add(new Mnemostiller(this));
            Archetypes.Add(new OenopionResearcher(this));
            Archetypes.Add(new Oozemaster(this));
            Archetypes.Add(new Perfumer(this));
            Archetypes.Add(new PlagueBringer(this));
            Archetypes.Add(new Preservationist(this));
            Archetypes.Add(new PrometheanAlchemist(this));
            Archetypes.Add(new Psychonaut(this));
            Archetypes.Add(new Ragechemist(this));
            Archetypes.Add(new Reanimator(this));
            Archetypes.Add(new RoyalAlchemist(this));
            Archetypes.Add(new Saboteur(this));
            Archetypes.Add(new SacramentAlchemist(this));
            Archetypes.Add(new Tinkerer(this));
            Archetypes.Add(new Toxicant(this));
            Archetypes.Add(new TrapBreaker(this));
            Archetypes.Add(new Vaultbreaker(this));
            Archetypes.Add(new Vivisectionist(this));
            Archetypes.Add(new WastelandBlightbreaker(this));
            Archetypes.Add(new WingedMarauder(this));
        }
        public Brawler()
        {
            Name            = "Brawler";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Bad;
            ClassAbilities  = new List <ClassAbility>
            {
                BrawlersCunning,
                MartialFlexibility,
                MartialTraining,
                UnarmedStrike1,
                UnarmedStrike4,
                UnarmedStrike8,
                UnarmedStrike12,
                UnarmedStrike16,
                UnarmedStrike20,
                BonusCombatFeat2,
                BonusCombatFeat5,
                BonusCombatFeat8,
                BonusCombatFeat11,
                BonusCombatFeat14,
                BonusCombatFeat17,
                BonusCombatFeat20,
                BrawlersFlurry2,
                BrawlersFlurry8,
                BrawlersFlurry15,
                ManeuverTraining3,
                ManeuverTraining7,
                ManeuverTraining11,
                ManeuverTraining15,
                ManeuverTraining19,
                AcBonus1,
                AcBonus2,
                AcBonus3,
                AcBonus4,
                Knockout1,
                Knockout2,
                Knockout3,
                BrawlersStrike5,
                BrawlersStrike9,
                BrawlersStrike12,
                BrawlersStrike17,
                CloseWeaponMastery,
                AwesomeBlow,
                ImprovedAwesomeBlow,
            };

            Archetypes.Add(new BattleDancer(this));
            Archetypes.Add(new Bouncer(this));
            Archetypes.Add(new ConstructedPugilist(this));
            Archetypes.Add(new Exemplar(this));
            Archetypes.Add(new FeralStriker(this));
            Archetypes.Add(new Hinyasi(this));
            Archetypes.Add(new LivingAvalanche(this));
            Archetypes.Add(new MutagenicMauler(this));
            Archetypes.Add(new ShieldChampion(this));
            Archetypes.Add(new SnakebiteStriker(this));
            Archetypes.Add(new SteelBreaker(this));
            Archetypes.Add(new Strangler(this));
            Archetypes.Add(new StrongSideBoxer(this));
            Archetypes.Add(new Turfer(this));
            Archetypes.Add(new UlfenBeastWrestler(this));
            Archetypes.Add(new Venomfist(this));
            Archetypes.Add(new VerdantGrappler(this));
            Archetypes.Add(new WildChild(this));
            Archetypes.Add(new WindingPathRenegade(this));
        }
Beispiel #16
0
        public Cleric(decimal level, string archetype)
        {
            HitDice = "d8";
            Archetypes.Add("Knowledge");
            Archetypes.Add("Life");
            Archetypes.Add("Light");
            Archetypes.Add("Tempest");
            Archetypes.Add("Nature");
            Archetypes.Add("Trickery");
            Archetypes.Add("War");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Medium Armor");
            ItemProficiencies.Add("Shields");
            ItemProficiencies.Add("Simple Weapon");
            ClassFeatures.Add("Spellcasting");
            ClassFeatures.Add("Divine Domain");
            if (level >= 2)
            {
                ClassFeatures.Add("Channel Divinity");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Destroy Undead");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Divine Intervention");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Superior Inspiration");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Knowledge":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Blessing of Knowledge");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Knowledge of the Ages");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Channel Divinity: Read Thoughts");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Potent Spellcasting");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Visions of the Past");
                }
                break;

            case "Life":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Blessing of Light");
                }
                if (level >= 1)
                {
                    ItemProficiencies.Add("Heavy Armor");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Preserve Life");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Blessed Healer");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Divine Strike");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Supreme Healing");
                }
                break;

            case "Light":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Bonus Contrip");
                }
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Warding Flare");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Radiance of the Dawn");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Improved Flare");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Potent Spellcasting");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Corona of Light");
                }
                break;

            case "Nature":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Acolyte of Nature");
                }
                if (level >= 1)
                {
                    ItemProficiencies.Add("Heavy Armor");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Charm Animals and Plants");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Dampen Elements");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Divine Strike");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Master of Nature");
                }
                break;

            case "Tempest":
                if (level >= 1)
                {
                    ItemProficiencies.Add("Martial");
                }
                if (level >= 1)
                {
                    ItemProficiencies.Add("Heavy Armor");
                }
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Watch of the Storm");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Destructive Wrath");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Thunderbolt Strike");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Divine Strike");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Stormborn");
                }
                break;

            case "Trickery":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Blessing of the Trickster");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Invoke Duplicity");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Channel Divinity: Cloak of Shadows");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Divine Strike");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Improved Duplicity");
                }
                break;

            case "War":
                if (level >= 1)
                {
                    ItemProficiencies.Add("Martial");
                }
                if (level >= 1)
                {
                    ItemProficiencies.Add("Heavy Armor");
                }
                if (level >= 1)
                {
                    ArchetypeFeats.Add("War Priest");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Channel Divinity: Guided Strike");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Channel Divinity: War God's Blessing");
                }
                if (level >= 8)
                {
                    ArchetypeFeats.Add("Divine Strike");
                }
                if (level >= 17)
                {
                    ArchetypeFeats.Add("Avatar of Battle");
                }
                break;
            }
        }
        public Wizard(decimal level, string archetype)
        {
            HitDice = "k6";
            Archetypes.Add("School of Abjuration");
            Archetypes.Add("School of Conjuration");
            Archetypes.Add("School of Divination");
            Archetypes.Add("School of Enchantment");
            Archetypes.Add("School of Evocation");
            Archetypes.Add("School of Necromancy");
            Archetypes.Add("School of Transmutation");
            ItemProficiencies.Add("Dagger");
            ItemProficiencies.Add("Dart");
            ItemProficiencies.Add("Sling");
            ItemProficiencies.Add("Quarterstaff");
            ItemProficiencies.Add("Light Crossbow");
            ClassFeatures.Add("Spellcasting");
            ClassFeatures.Add("Arcane Recovery");
            if (level >= 2)
            {
                ClassFeatures.Add("Arcane Tradition");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Arcane Tradition Feature");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Spell Mastery");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Signature Spell");
            }
            switch (archetype)
            {
            case "":
                break;

            case "School of Abjuration":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Abjuration Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Arcane Ward");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Projected Ward");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Improved Abjuration");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Spell Resistance");
                }
                break;

            case "School of Conjuration":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Conjuration Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Minor Conjuration");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Benign Transposition");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Focused Conjuration");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Durable Summons");
                }
                break;

            case "School of Divination":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Divination Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Portent");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Expert Divination");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("The Third Eye");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Greater Portent");
                }
                break;

            case "School of Enchantment":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Enchantment Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Hypnotic Gaze");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Instinctive Charm");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Split Enchantment");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Alter Memories");
                }
                break;

            case "School of Evocation":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Evocation Savant");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Potent Cantrips");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Empowered Evocations");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Overchannel");
                }
                break;

            case "School of Necromancy":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Necromancy Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Grim Harvest");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Undead Thralls");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Inured to Undeath");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Command Undead");
                }
                break;

            case "School of Transmutation":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Transmutation Savant");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Minor Alchemy");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Transmuter's Stone");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Shapechanger");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Master Transmuter");
                }
                break;
            }
        }
Beispiel #18
0
        public Sorcerer(decimal level, string archetype)
        {
            HitDice = "k6";
            Archetypes.Add("Draconic Bloodline");
            Archetypes.Add("Wild Magic");
            ItemProficiencies.Add("Dagger");
            ItemProficiencies.Add("Dart");
            ItemProficiencies.Add("Sling");
            ItemProficiencies.Add("Quarterstaff");
            ItemProficiencies.Add("Light Crossbow");
            ClassFeatures.Add("Spellcasting");
            ClassFeatures.Add("Sorcerous Orgin");
            if (level >= 2)
            {
                ClassFeatures.Add("Font of Magic");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Metamagic");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Sorcerous Origin Feature");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Metamagic");
            }
            if (level >= 14)
            {
                ClassFeatures.Add("Sorcerous Origin Feature");
            }
            if (level >= 17)
            {
                ClassFeatures.Add("Metamagic");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Sorcerous Origin Feature");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Sorcerous Restoration");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Draconic Bloodline":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Draconic Ancestor");
                }
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Draconic Resilience");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Elemental Affinity");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Dragon Wings");
                }
                if (level >= 18)
                {
                    ArchetypeFeats.Add("Draconic Presence");
                }
                break;

            case "Wild Magic":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Wild Magic Surge");
                }
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Tides of Chaos");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Bend Luck");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Controlled Chaos");
                }
                if (level >= 18)
                {
                    ArchetypeFeats.Add("Spell Bombardment");
                }
                break;
            }
        }
Beispiel #19
0
        public Cleric()
        {
            Name            = "Cleric";
            Alignment       = "Within one step of her deity";
            BaseAttackBonus = BaseAttackBonus.Medium;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Good;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, 3, 1),
                    new CasterLevel(2, 4, 2),
                    new CasterLevel(3, 4, 2, 1),
                    new CasterLevel(4, 4, 3, 2),
                    new CasterLevel(5, 4, 3, 2, 1),
                    new CasterLevel(6, 4, 3, 3, 2),
                    new CasterLevel(7, 4, 4, 3, 2, 1),
                    new CasterLevel(8, 4, 4, 3, 3, 2),
                    new CasterLevel(9, 4, 4, 4, 3, 2, 1),
                    new CasterLevel(10, 4, 4, 4, 3, 3, 2),
                    new CasterLevel(11, 4, 4, 4, 4, 3, 2, 1),
                    new CasterLevel(12, 4, 4, 4, 4, 3, 3, 2),
                    new CasterLevel(13, 4, 4, 4, 4, 4, 3, 2, 1),
                    new CasterLevel(14, 4, 4, 4, 4, 4, 3, 3, 2),
                    new CasterLevel(15, 4, 4, 4, 4, 4, 4, 3, 2, 1),
                    new CasterLevel(16, 4, 4, 4, 4, 4, 4, 3, 3, 2),
                    new CasterLevel(17, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1),
                    new CasterLevel(18, 4, 4, 4, 4, 4, 4, 4, 3, 3, 2),
                    new CasterLevel(19, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3),
                    new CasterLevel(20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                Aura,
                ChannelEnergy1,
                ChannelEnergy2,
                ChannelEnergy3,
                ChannelEnergy4,
                ChannelEnergy5,
                ChannelEnergy6,
                ChannelEnergy7,
                ChannelEnergy8,
                ChannelEnergy9,
                ChannelEnergy10,
                Domains,
                Spells,
                SpontaneousCasting,
                Orisons,
            };

            Archetypes.Add(new AngelfireApostle(this));
            Archetypes.Add(new Appeaser(this));
            Archetypes.Add(new AsmodeanAdvocate(this));
            Archetypes.Add(new BlossomingLight(this));
            Archetypes.Add(new Cardinal(this));
            Archetypes.Add(new ChannelerOfTheUnknown(this));
            Archetypes.Add(new CloisteredCleric(this));
            Archetypes.Add(new CrashingWave(this));
            Archetypes.Add(new Crusader(this));
            Archetypes.Add(new DemonicApostle(this));
            Archetypes.Add(new DivineParagon(this));
            Archetypes.Add(new DivineScourge(this));
            Archetypes.Add(new DivineStrategist(this));
            Archetypes.Add(new Ecclesitheurge(this));
            Archetypes.Add(new ElderMythosCultist(this));
            Archetypes.Add(new Evangelist(this));
        }
Beispiel #20
0
        public Ranger(decimal level, string archetype)
        {
            HitDice = "k10";
            Archetypes.Add("Hunter");
            Archetypes.Add("Beast Master");
            ItemProficiencies.Add("Light armor");
            ItemProficiencies.Add("Medium armor");
            ItemProficiencies.Add("Shield");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Martial Weapon");
            ClassFeatures.Add("Favored Enemy");
            ClassFeatures.Add("Natural Explorer");
            if (level >= 2)
            {
                ClassFeatures.Add("Fighting Style");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Spellcasting");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Ranger archetype");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Primeval awarness");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Extra attack");
            }
            if (level >= 8)
            {
                ClassFeatures.Add("Land's stride");
            }
            if (level >= 10)
            {
                ClassFeatures.Add("Hide in Plain Sight");
            }
            if (level >= 14)
            {
                ClassFeatures.Add("Vanish");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Feral senses");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Foe slayer");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Hunter":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Hunter's Prey");
                }
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Defensive Tactics");
                }
                if (level >= 11)
                {
                    ArchetypeFeats.Add("Multiattack");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Superior Hunter's Defense");
                }
                break;

            case "Beast Master":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Ranger's Companion");
                }
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Exceptional Training");
                }
                if (level >= 11)
                {
                    ArchetypeFeats.Add("Bestial Fury");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Shared Spells");
                }
                break;
            }
        }
Beispiel #21
0
        public Bloodrager()
        {
            Name            = "Bloodrager";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Full;
            FortitudeSave   = SavingThrow.Good;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Bad;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null),
                    new CasterLevel(2, null),
                    new CasterLevel(3, null),
                    new CasterLevel(4, null, 1),
                    new CasterLevel(5, null, 1),
                    new CasterLevel(6, null, 1),
                    new CasterLevel(7, null, 1, 1),
                    new CasterLevel(8, null, 1, 1),
                    new CasterLevel(9, null, 2, 1),
                    new CasterLevel(10, null, 2, 1, 1),
                    new CasterLevel(11, null, 2, 1, 1),
                    new CasterLevel(12, null, 2, 2, 1),
                    new CasterLevel(13, null, 3, 2, 1, 1),
                    new CasterLevel(14, null, 3, 2, 1, 1),
                    new CasterLevel(15, null, 3, 2, 2, 1),
                    new CasterLevel(16, null, 3, 3, 2, 1),
                    new CasterLevel(17, null, 4, 3, 2, 1),
                    new CasterLevel(18, null, 4, 3, 2, 2),
                    new CasterLevel(19, null, 4, 3, 3, 2),
                    new CasterLevel(20, null, 4, 4, 3, 2),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                Bloodline,
                BloodlinePower1,
                BloodlinePower4,
                BloodlinePower8,
                BloodlinePower12,
                BloodlinePower16,
                BloodlinePower20,
                Bloodrage,
                FastMovement,
                UncannyDodge,
                BloodSanctuary,
                BloodCasting,
                EschewMaterials,
                Spells,
                ImprovedUncannyDodge,
                BloodlineFeat6,
                BloodlineFeat9,
                BloodlineFeat12,
                BloodlineFeat15,
                BloodlineFeat18,
                BloodlineSpell7,
                BloodlineSpell10,
                BloodlineSpell13,
                BloodlineSpell16,
                DamageReduction1,
                DamageReduction2,
                DamageReduction3,
                DamageReduction4,
                DamageReduction5,
                GreaterBloodrage,
                IndomitableWill,
                TirelessBloodrage,
                MightyBloodrage,
            };

            Archetypes.Add(new AncestralHarbinger(this));
            Archetypes.Add(new BloodConduit(this));
            Archetypes.Add(new Bloodrider(this));
            Archetypes.Add(new BloodyKnuckledRowdy(this));
            Archetypes.Add(new CrossbloodedRager(this));
            Archetypes.Add(new EnlightenedBloodrager(this));
            Archetypes.Add(new Greenrager(this));
            Archetypes.Add(new HagRiven(this));
            Archetypes.Add(new IdRager(this));
            Archetypes.Add(new MetamagicRager(this));
            Archetypes.Add(new Primalist(this));
            Archetypes.Add(new ProwlerAtWorldsEnd(this));
            Archetypes.Add(new Rageshaper(this));
            Archetypes.Add(new Spelleater(this));
            Archetypes.Add(new Steelblood(this));
            Archetypes.Add(new SymbolStriker(this));
            Archetypes.Add(new UntouchableRager(this));
            Archetypes.Add(new UrbanBloodrager(this));
        }
Beispiel #22
0
        public Bard()
        {
            Name            = "Bard";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Medium;
            FortitudeSave   = SavingThrow.Bad;
            ReflexSave      = SavingThrow.Good;
            WillSave        = SavingThrow.Good;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting()
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null, 1),
                    new CasterLevel(2, null, 2),
                    new CasterLevel(3, null, 3),
                    new CasterLevel(4, null, 3, 1),
                    new CasterLevel(5, null, 4, 2),
                    new CasterLevel(6, null, 4, 3),
                    new CasterLevel(7, null, 4, 3, 1),
                    new CasterLevel(8, null, 4, 4, 2),
                    new CasterLevel(9, null, 5, 4, 3),
                    new CasterLevel(10, null, 5, 4, 3, 1),
                    new CasterLevel(11, null, 5, 4, 4, 2),
                    new CasterLevel(12, null, 5, 5, 4, 3),
                    new CasterLevel(13, null, 5, 5, 4, 3, 1),
                    new CasterLevel(14, null, 5, 5, 4, 4, 2),
                    new CasterLevel(15, null, 5, 5, 5, 4, 3),
                    new CasterLevel(16, null, 5, 5, 5, 4, 3, 1),
                    new CasterLevel(17, null, 5, 5, 5, 4, 4, 2),
                    new CasterLevel(18, null, 5, 5, 5, 5, 4, 3),
                    new CasterLevel(19, null, 5, 5, 5, 5, 5, 4),
                    new CasterLevel(20, null, 5, 5, 5, 5, 5, 5),
                }
            };

            ClassAbilities = new List <ClassAbility>
            {
                BardicKnowledge,
                BardicPerformance,
                Cantrips,
                Countersong,
                Distraction,
                Fascinate,
                InspireCourage1,
                InspireCourage2,
                InspireCourage3,
                InspireCourage4,
                Spells,
                WellVersed,
                InspireCompetence2,
                InspireCompetence3,
                InspireCompetence4,
                InspireCompetence5,
                InspireCompetence6,
                Suggestion,
                DirgeOfDoom,
                InspireGreatness,
                SoothingPerformance,
                FrighteningTune,
                InspireHeroics,
                MassSuggestion,
                DeadlyPerformance,
                VersatilePerformance2,
                VersatilePerformance6,
                VersatilePerformance10,
                VersatilePerformance14,
                VersatilePerformance18,
                LoreMaster1,
                LoreMaster2,
                LoreMaster3,
                JackOfAllTrades,
            };

            Archetypes.Add(new AnimalSpeaker(this));
            Archetypes.Add(new ArcaneDuelist(this));
            Archetypes.Add(new ArcaneHealer(this));
            Archetypes.Add(new Archaeologist(this));
            Archetypes.Add(new Archivist(this));
            Archetypes.Add(new ArgentVoice(this));
            Archetypes.Add(new ArrowsongMinstrel(this));
            Archetypes.Add(new AverakaArbiter(this));
            Archetypes.Add(new BrazenDeceiver(this));
            Archetypes.Add(new Buccaneer(this));
            Archetypes.Add(new Busker(this));
            Archetypes.Add(new Celebrity(this));
            Archetypes.Add(new ChelishDiva(this));
            Archetypes.Add(new ChroniclerOfWorlds(this));
            Archetypes.Add(new CourtBard(this));
            Archetypes.Add(new CourtFool(this));
            Archetypes.Add(new Cultivator(this));
            Archetypes.Add(new Daredevil(this));
            Archetypes.Add(new DawnflowerDervish(this));
            Archetypes.Add(new Demagogue(this));
            Archetypes.Add(new DervishDancer(this));
            Archetypes.Add(new Detective(this));
            Archetypes.Add(new DirgeBard(this));
            Archetypes.Add(new DiscipleOfTheForkedTongue(this));
            Archetypes.Add(new DragonHerald(this));
            Archetypes.Add(new DragonYapper(this));
            Archetypes.Add(new Duettist(this));
            Archetypes.Add(new DwarvenScholar(this));
            Archetypes.Add(new FaithSinger(this));
            Archetypes.Add(new FeyCourtier(this));
            Archetypes.Add(new FeyPrankster(this));
            Archetypes.Add(new Filidh(this));
            Archetypes.Add(new FirstWorldMinstrel(this));
            Archetypes.Add(new FlameDancer(this));
            Archetypes.Add(new Flamesinger(this));
            Archetypes.Add(new FortuneTeller(this));
            Archetypes.Add(new Geisha(this));
            Archetypes.Add(new HatharatAgent(this));
            Archetypes.Add(new Hoaxer(this));
            Archetypes.Add(new ImperviousMessenger(this));
            Archetypes.Add(new Juggler(this));
            Archetypes.Add(new LotusGeisha(this));
            Archetypes.Add(new LuringPiper(this));
            Archetypes.Add(new Magician(this));
            Archetypes.Add(new MaskedPerformer(this));
            Archetypes.Add(new MuteMusician(this));
            Archetypes.Add(new Negotiator(this));
            Archetypes.Add(new Phrenologist(this));
            Archetypes.Add(new PitaxAcademyOfGrandArts(this));
            Archetypes.Add(new PlantSpeaker(this));
            Archetypes.Add(new Prankster(this));
            Archetypes.Add(new Provocateur(this));
            Archetypes.Add(new RingleaderAG(this));
            Archetypes.Add(new RingleaderUI(this));
            Archetypes.Add(new Sandman(this));
            Archetypes.Add(new SavageSkald(this));
            Archetypes.Add(new SeaSinger(this));
            Archetypes.Add(new ShadowPuppeteer(this));
            Archetypes.Add(new SilverBalladeer(this));
            Archetypes.Add(new Solacer(this));
            Archetypes.Add(new Songhealer(this));
            Archetypes.Add(new Sorrowsoul(this));
            Archetypes.Add(new SoundStriker(this));
            Archetypes.Add(new SpeakerOfThePalatineEye(this));
            Archetypes.Add(new Stonesinger(this));
            Archetypes.Add(new StreetPerformer(this));
            Archetypes.Add(new StudiousLibrarian(this));
            Archetypes.Add(new Thundercaller(this));
            Archetypes.Add(new VoiceOfBrigh(this));
            Archetypes.Add(new VoiceOfTheWild(this));
            Archetypes.Add(new WastelandChronicler(this));
            Archetypes.Add(new Watersinger(this));
            Archetypes.Add(new Wit(this));
        }
Beispiel #23
0
        public Fighter(decimal level, string archetype)
        {
            HitDice = "d10";
            Archetypes.Add("Champion");
            Archetypes.Add("Battle Master");
            Archetypes.Add("Eldritch Knight");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Medium Armor");
            ItemProficiencies.Add("Heavy Armor");
            ItemProficiencies.Add("Shields");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Martial Weapon");
            ClassFeatures.Add("Fighting Style");
            ClassFeatures.Add("Second Wind");
            if (level >= 2)
            {
                ClassFeatures.Add("Action Surge");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Martial Archetype");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Extra Attack");
            }
            if (level >= 9)
            {
                ClassFeatures.Add("Indomitable");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Champion":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Improved Critical");
                }
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Remarkable Athlete");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Additional Fighting Style");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Superior Critical");
                }
                if (level >= 18)
                {
                    ArchetypeFeats.Add("Survivor");
                }
                break;

            case "Battle Master":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Combat Superiority");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Student of War");
                }
                if (level >= 7)
                {
                    ArchetypeFeats.Add("Know Your Enemy");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Improved Combat Superiority");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Relentless");
                }
                break;

            case "Eldritch Knight":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Spellcasting");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Weapon Bond");
                }
                if (level >= 7)
                {
                    ArchetypeFeats.Add("War Magic");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Eldritch Strike");
                }
                if (level >= 15)
                {
                    ArchetypeFeats.Add("Arcane Charge");
                }
                if (level >= 18)
                {
                    ArchetypeFeats.Add("Improved War Magic");
                }
                break;
            }
        }
        public Druid(decimal level, string archetype)
        {
            HitDice = "d8";
            Archetypes.Add("Circle of the Land");
            Archetypes.Add("Circle of the Moon");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Medium Armor");
            ItemProficiencies.Add("Club");
            ItemProficiencies.Add("Dagger");
            ItemProficiencies.Add("Dart");
            ItemProficiencies.Add("Javelin");
            ItemProficiencies.Add("Mace");
            ItemProficiencies.Add("Quarterstaff");
            ItemProficiencies.Add("Scimitar");
            ItemProficiencies.Add("Sickle");
            ItemProficiencies.Add("Sling");
            ItemProficiencies.Add("Spear");
            ItemProficiencies.Add("Herbalism Kit");
            ClassFeatures.Add("Spellcasting");
            if (level >= 2)
            {
                ClassFeatures.Add("Wild Shape");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Druidic Circle");
            }
            if (level >= 8)
            {
                ClassFeatures.Add("Timeless Body");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Beast Spells");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Archdruid");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Circle of the Land":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Bonus Contrip");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Natural Recovery");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Circle Spells");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Lands Stride");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Nature Ward");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Natures's Sanctuary");
                }
                break;

            case "Circle of the Moon":
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Combat Wild Shape");
                }
                if (level >= 2)
                {
                    ArchetypeFeats.Add("Circle Forms");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Primal Strike");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Elemental Wild Shape");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Thousand Forms");
                }
                break;
            }
        }
Beispiel #25
0
        public Barbarian(decimal level, string archetype)
        {
            HitDice = "d12";
            Archetypes.Add("Berserker");
            Archetypes.Add("Totem Warrior");
            ItemProficiencies.Add("Light Armor");
            ItemProficiencies.Add("Medium Armor");
            ItemProficiencies.Add("Shields");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Martial Weapon");
            ClassFeatures.Add("Rage");
            ClassFeatures.Add("Unarmored Defense");
            if (level >= 2)
            {
                ClassFeatures.Add("Reckless Attack");
            }
            if (level >= 2)
            {
                ClassFeatures.Add("Danger Sense");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Primal Path");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Extra Attack");
            }
            if (level >= 5)
            {
                ClassFeatures.Add("Fast Movement");
            }
            if (level >= 7)
            {
                ClassFeatures.Add("Feral Instinct");
            }
            if (level >= 9)
            {
                ClassFeatures.Add("Brutal Critical");
            }
            if (level >= 11)
            {
                ClassFeatures.Add("Relentless Rage");
            }
            if (level >= 15)
            {
                ClassFeatures.Add("Persistent Rage");
            }
            if (level >= 18)
            {
                ClassFeatures.Add("Indomitable Might");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Primal Champion");
            }
            switch (archetype)
            {
            case "":
                break;

            case "Totem Warrior":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Spirit Seeker");
                }
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Totem Spirit");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Aspect of the Beast");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Spirit Walker");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Totem Attunement");
                }
                break;

            case "Berserker":
                if (level >= 3)
                {
                    ArchetypeFeats.Add("Frenzy");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Mindless Rage");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Intimidating Presence");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Retaliation");
                }
                break;
            }
        }
        public Arcanist()
        {
            Name            = "Arcanist";
            Alignment       = "Any";
            BaseAttackBonus = BaseAttackBonus.Half;
            FortitudeSave   = SavingThrow.Bad;
            ReflexSave      = SavingThrow.Bad;
            WillSave        = SavingThrow.Good;
            SpellCaster     = true;
            SpellCasting    = new SpellCasting
            {
                CasterLevels = new List <CasterLevel>
                {
                    new CasterLevel(1, null, 2),
                    new CasterLevel(2, null, 3),
                    new CasterLevel(3, null, 4),
                    new CasterLevel(4, null, 4, 2),
                    new CasterLevel(5, null, 4, 3),
                    new CasterLevel(6, null, 4, 4, 2),
                    new CasterLevel(7, null, 4, 4, 3),
                    new CasterLevel(8, null, 4, 4, 4, 2),
                    new CasterLevel(9, null, 4, 4, 4, 3),
                    new CasterLevel(10, null, 4, 4, 4, 4, 2),
                    new CasterLevel(11, null, 4, 4, 4, 4, 3),
                    new CasterLevel(12, null, 4, 4, 4, 4, 4, 2),
                    new CasterLevel(13, null, 4, 4, 4, 4, 4, 3),
                    new CasterLevel(14, null, 4, 4, 4, 4, 4, 4, 2),
                    new CasterLevel(15, null, 4, 4, 4, 4, 4, 4, 3),
                    new CasterLevel(16, null, 4, 4, 4, 4, 4, 4, 4, 2),
                    new CasterLevel(17, null, 4, 4, 4, 4, 4, 4, 4, 3),
                    new CasterLevel(18, null, 4, 4, 4, 4, 4, 4, 4, 4, 2),
                    new CasterLevel(19, null, 4, 4, 4, 4, 4, 4, 4, 4, 3),
                    new CasterLevel(20, null, 4, 4, 4, 4, 4, 4, 4, 4, 4),
                }
            };
            ClassAbilities = new List <ClassAbility>
            {
                ArcaneResevoir,
                ArcanistExploit1,
                ArcanistExploit3,
                ArcanistExploit5,
                ArcanistExploit7,
                ArcanistExploit9,
                ArcanistExploit11,
                ArcanistExploit13,
                ArcanistExploit15,
                ArcanistExploit17,
                ArcanistExploit19,
                Cantrips,
                ConsumeSpells,
                Spells,
                GreaterExploits,
                MagicalSupremacy,
            };

            Archetypes.Add(new Aeromancer(this));
            Archetypes.Add(new ArcaneTinkerer(this));
            Archetypes.Add(new BladeAdept(this));
            Archetypes.Add(new BloodArcanist(this));
            Archetypes.Add(new BrownFurTransmuter(this));
            Archetypes.Add(new EldritchFont(this));
            Archetypes.Add(new ElementalMaster(this));
            Archetypes.Add(new HarrowedSocietyStudent(this));
            Archetypes.Add(new MagaambyanInitiate(this));
            Archetypes.Add(new Archetypes.Arcanist.Occultist(this));
            Archetypes.Add(new SchoolSavant(this));
            Archetypes.Add(new SpellSpecialist(this));
            Archetypes.Add(new TwilightSage(this));
            Archetypes.Add(new UnletteredArcanist(this));
            Archetypes.Add(new WhiteMage(this));
        }
        public Warlock(decimal level, string archetype)
        {
            HitDice = "k8";
            Archetypes.Add("The Archfey");
            Archetypes.Add("The Fiend");
            Archetypes.Add("The Great Old One");
            ItemProficiencies.Add("Simple Weapon");
            ItemProficiencies.Add("Light Armors");
            ClassFeatures.Add("Otherworldly Patreon");
            ClassFeatures.Add("Pact Magic");
            if (level >= 2)
            {
                ClassFeatures.Add("Eldritch Invocations");
            }
            if (level >= 3)
            {
                ClassFeatures.Add("Pact boon");
            }
            if (level >= 6)
            {
                ClassFeatures.Add("Otherworldly Patreaon Feature");
            }
            if (level >= 11)
            {
                ClassFeatures.Add("Mystic Arcanum Surge(6th level)");
            }
            if (level >= 13)
            {
                ClassFeatures.Add("Mystic Arcanum Surge(7th level)");
            }
            if (level >= 15)
            {
                ClassFeatures.Add("Mystic Arcanum Surge(8th level)");
            }
            if (level >= 17)
            {
                ClassFeatures.Add("Mystic Arcanum Surge(9th level)");
            }
            if (level >= 20)
            {
                ClassFeatures.Add("Eldritch Master");
            }
            switch (archetype)
            {
            case "":
                break;

            case "The Archfey":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Fey Presence");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Misty Escape");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Beg*iling Defense");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Dark Delirium");
                }
                break;

            case "The Fiend":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Dark One's Blessing");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Dark One's Own Luck");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Fiendish Resilience");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Hurl Through Hell");
                }
                break;

            case "The Great Old One":
                if (level >= 1)
                {
                    ArchetypeFeats.Add("Awekened Mind");
                }
                if (level >= 6)
                {
                    ArchetypeFeats.Add("Entropic Ward");
                }
                if (level >= 10)
                {
                    ArchetypeFeats.Add("Thought Shield");
                }
                if (level >= 14)
                {
                    ArchetypeFeats.Add("Create Thrall");
                }
                break;
            }
        }