public void DruidSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = 1;

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Circle of the Moon";
                break;

            case 1:
                int randruid = rand.Next(0, 7);
                switch (randruid)
                {
                case 0:
                    pc.SubClassName = "Circle of the Land: Arctic";
                    break;

                case 1:
                    pc.SubClassName = "Circle of the Land: Coast";
                    break;

                case 2:
                    pc.SubClassName = "Circle of the Land: Desert";
                    break;

                case 3:
                    pc.SubClassName = "Circle of the Land: Forest";
                    break;

                case 4:
                    pc.SubClassName = "Circle of the Land: Grassland";
                    break;

                case 5:
                    pc.SubClassName = "Circle of the Land: Mountain";
                    break;

                case 6:
                    pc.SubClassName = "Circle of the Land: Swamp";
                    break;

                case 7:
                    pc.SubClassName = "Circle of the Land: Underdark";
                    break;
                }
                break;
            }
        }
Beispiel #2
0
 public NewCharacter(int level, PlayerStat pStat, PlayerRace pRace, PlayerClass pClass, PlayerBG pBG)
 {
     Level         = level;
     playerStat    = pStat;
     playerStatId  = pStat.PlayerStatId;
     playerClassId = pClass.PlayerClassId;
     playerClass   = pClass;
     playerRaceId  = pRace.PlayerRaceId;
     playerRace    = pRace;
     playerBGId    = pBG.PlayerBGId;
     playerBG      = pBG;
     UserId        = 1;
     playerName    = "Name";
     playerNotes   = "Notes";
 }
        public void SorcSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Draconic Bloodline";
                break;

            case 1:
                pc.SubClassName = "Wild Magic";
                break;
            }
        }
        public void RangerSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Hunter";
                break;

            case 1:
                pc.SubClassName = "Beast Master";
                break;
            }
        }
        //passing in Playerclass to assign the subclassname, and the PlayerStat to assign features/spells once those are implemented in PlayerClass
        public void BarbSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Path of the Berserker";
                break;

            case 1:
                pc.SubClassName = "Path of the Totem Warrior";
                break;
            }
        }
        public void BardSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "College of Lore";
                break;

            case 1:
                pc.SubClassName = "College of Valor";
                break;
            }
        }
        public void MonkSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Way of the Open Hand";
                break;

            case 1:
                pc.SubClassName = "Way of the Four Elements";
                break;

            case 2:
                pc.SubClassName = "Way of Shadow";
                break;
            }
        }
        public void WarlockSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(2, 3);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "The Archfey";
                break;

            case 1:
                pc.SubClassName = "The Great Old One";
                break;

            case 2:
                pc.SubClassName = "The Fiend";
                break;
            }
        }
        public void PaladinSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Oath of Devotion";
                break;

            case 1:
                pc.SubClassName = "Oath of Vengeance";
                break;

            case 2:
                pc.SubClassName = "Oath of the Ancients";
                break;
            }
        }
        public void FighterSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Champion";
                break;

            case 1:
                pc.SubClassName = "Battle Master";
                break;

            case 2:
                pc.SubClassName = "Eldritch Knight";
                break;
            }
        }
        public void RogueSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(0, 1);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Thief";
                break;

            case 1:
                pc.SubClassName = "Assassin";
                break;

            case 2:
                pc.SubClassName = "Arcane Trickster";
                break;
            }
        }
        public PlayerStat Wizard(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose { "Arcana", "History", "Insight", "Investigation", "Medicine", "Religion"};
            int[] SkillList = { 5, 4, 6, 8, 9, 14 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.IntSaveB = true;
            Stats.WisSaveB = true;
            // Hp Generation
            int Base   = 6;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            WizSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Warlock(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose { "Arcana", "Deception", "History", "Intimidation", "Investigation", "Nature",  "Religion"};
            int[] SkillList = { 5, 3, 4, 7, 8, 10, 14 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.WisSaveB = true;
            Stats.ChaSaveB = true;
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            WarlockSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Ranger(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 3;

            // Skills: Choose {"AnimalHandling","Athletics","Insight","Investigation","Nature", "Perception", "Stealth", "Survival"};
            int[] SkillList = { 0, 1, 6, 8, 10, 11, 16, 17 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.StrSaveB = true;
            Stats.DexSaveB = true;
            // Hp Generation
            int Base   = 10;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            RangerSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Monk(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose  { "Acrobatics","Athletics","History","Insight","Religion", "SleightofHand", "Stealth"}
            int[] SkillList = { 2, 1, 4, 6, 14, 15, 16 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.StrSaveB = true;
            Stats.DexSaveB = true;
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            MonkSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Fighter(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose{ "Acrobatics", "AnimalHandling","Athletics","History","Insight","Intimidation","Perception", "Survival"};
            int[] SkillList = { 2, 0, 1, 4, 6, 7, 11, 17 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.StrSaveB = true;
            Stats.ConSaveB = true;
            // Hp Generation
            int Base   = 10;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            FighterSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Druid(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose { "AnimalHandling", "Arcana", "Insight", "Medicine", "Nature", "Perception", "Religion", "Survival"};
            int[] SkillList = { 0, 5, 6, 9, 10, 11, 14, 17 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.IntSaveB = true;
            Stats.WisSaveB = true;
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            DruidSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Cleric(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills:{"History", "Insight", "Medicine", "Religion"};
            int[] SkillList = { 4, 6, 7, 9, 14 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.WisSaveB = true;
            Stats.ChaSaveB = true;
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            ClericSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Paladin(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose { "Athletics","Insight","Intimidation","Medicine", "Persuasion", "Religion"};
            int[] SkillList = { 1, 6, 7, 9, 13, 14 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.WisSaveB = true;
            Stats.ChaSaveB = true;
            // Hp Generation
            int Base   = 10;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            PaladinSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Sorcerer(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 2;

            // Skills: Choose {"Arcana","Deception","Insight","Intimidation", "Persuasion", "Religion"};
            int[] SkillList = { 5, 3, 6, 7, 13, 14 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.ConSaveB = true;
            Stats.ChaSaveB = true;
            // Hp Generation
            int Base   = 6;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            SorcSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Rogue(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level    = level;
            int NumOfPro = 4;

            // Skills: Choose { "Acrobatics", "Athletics", "Deception","Insight","Intimidation","Investigation", "Perception", "Performance", "Persuasion", "SleightofHand", "Stealth"};
            int[] SkillList = { 2, 1, 3, 6, 7, 8, 11, 12, 13, 15, 16 };
            Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            // ASI assignment
            Stats          = ASIGen(Level, Stats, pClass);
            Stats.IntSaveB = true;
            Stats.DexSaveB = true;
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            RogueSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Barbarian(int level, PlayerStat Stats, PlayerClass pClass)
        {
            ClassName = "Barbarian";
            int Level    = level;
            int NumOfPro = 2;

            // Skills: { "AnimalHandling", "Athletics", "Intimidation", "Nature", "Perception", "Survivial" };
            int[] SkillList = { 0, 1, 7, 10, 11, 17 };
            Proficiencies  = ProGen(Level, Stats, NumOfPro, SkillList);
            Stats.StrSaveB = true;
            Stats.ConSaveB = true;
            // ASI assignment
            Stats = ASIGen(Level, Stats, pClass);
            // Hp Generation
            int Base   = 12;
            int ConMod = Stats.ConMod;

            ClassHP          = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            BarbSubGen(pClass, Stats);
            return(Stats);
        }
        public PlayerStat Bard(int level, PlayerStat Stats, PlayerClass pClass)
        {
            ClassName = "Bard";
            int Level    = level;
            int NumOfPro = 3;

            // Skills: Choose two fro{ "Acrobatics", "AnimalHandling", "Arcana", "Athletics", "Deception", "History","Insight","Intimidation","Investigation", "Medicine", "Nature", "Perception", "Performance", "Persuasion", "Religion", "SleightofHand", "Stealth", "Survival"};
            int[] SkillList = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 };
            pClass.Proficiencies = ProGen(Level, Stats, NumOfPro, SkillList);
            Stats.DexSaveB       = true;
            Stats.ChaSaveB       = true;
            // ASI assignment
            Stats = ASIGen(Level, Stats, pClass);
            // Hp Generation
            int Base   = 8;
            int ConMod = Stats.ConMod;

            pClass.ClassHP   = HPCalc(Level, Base, ConMod);
            Stats.HitPoints += ClassHP;
            BardSubGen(pClass, Stats);
            return(Stats);
        }
        public void WizSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(4, 5);

            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "School of Abjuration";
                break;

            case 1:
                pc.SubClassName = "School of Conjuration";
                break;

            case 2:
                pc.SubClassName = "School of Divination";
                break;

            case 3:
                pc.SubClassName = "School of Enchantment";
                break;

            case 4:
                pc.SubClassName = "School of Evocation";
                break;

            case 5:
                pc.SubClassName = "School of Illusion";
                break;

            case 6:
                pc.SubClassName = "School of Necromancy";
                break;

            case 7:
                pc.SubClassName = "School of Transmutation";
                break;
            }
        }
        public void ClericSubGen(PlayerClass pc, PlayerStat ps)
        {
            int subclassnum = rand.Next(1, 2);

            //KnowledgePHB LifePHB LightPHB NaturePHB TempestPHB TrickeryPHB WarPHB
            switch (subclassnum)
            {
            case 0:
                pc.SubClassName = "Knowledge Domain";
                break;

            case 1:
                pc.SubClassName = "Life Domain";
                break;

            case 2:
                pc.SubClassName = "Light Domain";
                break;

            case 3:
                pc.SubClassName = "Nature Domain";
                break;

            case 4:
                pc.SubClassName = "Tempest Domain";
                break;

            case 5:
                pc.SubClassName = "Trickery Domain";
                break;

            case 6:
                pc.SubClassName = "War Domain";
                break;
            }
        }
        // CLASS SELECTION - PICKS CLASS AND UPDATES PLAYER CLASS AND PLAYER STATS
        public PlayerStat ClassSelector(int level, PlayerStat Stats, PlayerClass playerClass)
        {
            Console.WriteLine("Within Class Selector, checking for Dwarven Toughness bonus");
            Console.WriteLine(Stats.HitPoints);
            int         Level  = level;
            PlayerClass pClass = playerClass;

            switch (rand.Next(0, 12))
            {
            case 0:
                Bard(Level, Stats, pClass);
                pClass.ClassName = "Bard";
                return(Stats);

            case 1:
                Cleric(Level, Stats, pClass);
                pClass.ClassName = "Cleric";
                return(Stats);

            case 2:
                Barbarian(Level, Stats, pClass);
                pClass.ClassName = "Barbarian";
                return(Stats);

            case 3:
                Druid(Level, Stats, pClass);
                pClass.ClassName = "Druid";
                return(Stats);

            case 4:
                Fighter(Level, Stats, pClass);
                pClass.ClassName = "Fighter";
                return(Stats);

            case 5:
                Monk(Level, Stats, pClass);
                pClass.ClassName = "Monk";
                return(Stats);

            case 6:
                Paladin(Level, Stats, pClass);
                pClass.ClassName = "Paladin";
                return(Stats);

            case 7:
                Ranger(Level, Stats, pClass);
                pClass.ClassName = "Ranger";
                return(Stats);

            case 8:
                Rogue(Level, Stats, pClass);
                pClass.ClassName = "Rogue";
                return(Stats);

            case 9:
                Sorcerer(Level, Stats, pClass);
                pClass.ClassName = "Sorcerer";
                return(Stats);

            case 10:
                Warlock(Level, Stats, pClass);
                pClass.ClassName = "Warlock";
                return(Stats);

            case 11:
                Wizard(Level, Stats, pClass);
                pClass.ClassName = "Wizard";
                return(Stats);
            }
            Console.WriteLine("Finished with Class Selector");
            return(Stats);
        }
        public PlayerStat ASIGen(int level, PlayerStat Stats, PlayerClass pClass)
        {
            int Level = level;
            // Levels player earns +2 so a certain skill
            // This works for every class except Fighter and Rogue
            // Fighter = {4,6,8,12,14,16,19}
            // Rogue = {4,8,10,12,16,19}
            // Override in ClassSelector
            List <int> TargetLevels = new List <int>();

            if (pClass.ClassName == "Fighter")
            {
                TargetLevels.AddRange(new int[] { 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 19, 19 });
            }
            else if (pClass.ClassName == "Rogue")
            {
                TargetLevels.AddRange(new int[] { 4, 4, 8, 8, 10, 10, 12, 12, 16, 16, 19, 19 });
            }
            else
            {
                TargetLevels.AddRange(new int[] { 4, 4, 8, 8, 12, 12, 16, 16, 19, 19 });
            }

            Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
            foreach (int val in TargetLevels)
            {
                Console.WriteLine(val);
            }
            // Empty bracket to be filled by comparing level to Target levels
            int        ASITotal = 0;
            List <int> ASILevel = new List <int>();

            for (int i = 0; i < TargetLevels.Count; i++)
            {
                if (TargetLevels[i] <= Level)
                {
                    ASILevel.Add(1);
                }
            }
            // for each value pushed into ASILevel, Select random Stat and assign value increase
            foreach (int ASI in ASILevel)
            {
                int skill = rand.Next(0, 6);
                switch (skill)
                {
                case 0:
                    if (Stats.Strength < 20)
                    {
                        Stats.Strength = Stats.Strength + ASI;
                        ASITotal       = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 1;
                    }

                case 1:
                    if (Stats.Dexterity < 20)
                    {
                        Stats.Dexterity = Stats.Dexterity + ASI;
                        ASITotal        = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 2;
                    }

                case 2:
                    if (Stats.Intelligence < 20)
                    {
                        Stats.Intelligence = Stats.Intelligence + ASI;
                        ASITotal           = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 3;
                    }

                case 3:
                    if (Stats.Charisma < 20)
                    {
                        Stats.Charisma = Stats.Charisma + ASI;
                        ASITotal       = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 4;
                    }

                case 4:
                    if (Stats.Constitution < 20)
                    {
                        Stats.Constitution = Stats.Constitution + ASI;
                        ASITotal           = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 5;
                    }

                case 5:
                    if (Stats.Wisdom < 20)
                    {
                        Stats.Wisdom = Stats.Wisdom + ASI;
                        ASITotal     = ASITotal + ASI;
                        break;
                    }
                    else
                    {
                        goto case 0;
                    }
                }
            }
            pClass.ASI = ASILevel.Count;
            return(Stats);
        }
        public PlayerStat SpecClassSelector(int level, PlayerStat Stats, PlayerClass playerClass, string selection)
        {
            int         Level  = level;
            PlayerClass pClass = playerClass;

            switch (selection)
            {
            case "Bard":
                Bard(Level, Stats, pClass);
                pClass.ClassName = "Bard";
                return(Stats);

            case "Cleric":
                Cleric(Level, Stats, pClass);
                pClass.ClassName = "Cleric";
                return(Stats);

            case "Barbarian":
                Barbarian(Level, Stats, pClass);
                pClass.ClassName = "Barbarian";
                return(Stats);

            case "Druid":
                Druid(Level, Stats, pClass);
                pClass.ClassName = "Druid";
                return(Stats);

            case "Fighter":
                Fighter(Level, Stats, pClass);
                pClass.ClassName = "Fighter";
                return(Stats);

            case "Monk":
                Monk(Level, Stats, pClass);
                pClass.ClassName = "Monk";
                return(Stats);

            case "Paladin":
                Paladin(Level, Stats, pClass);
                pClass.ClassName = "Paladin";
                return(Stats);

            case "Ranger":
                Ranger(Level, Stats, pClass);
                pClass.ClassName = "Ranger";
                return(Stats);

            case "Rogue":
                Rogue(Level, Stats, pClass);
                pClass.ClassName = "Rogue";
                return(Stats);

            case "Sorcerer":
                Sorcerer(Level, Stats, pClass);
                pClass.ClassName = "Sorcerer";
                return(Stats);

            case "Warlock":
                Warlock(Level, Stats, pClass);
                pClass.ClassName = "Warlock";
                return(Stats);

            case "Wizard":
                Wizard(Level, Stats, pClass);
                pClass.ClassName = "Wizard";
                return(Stats);
            }
            return(Stats);
        }