Esempio n. 1
0
        public List <Ancestry> ExportDungeonEcology(int tier)
        {
            var ancestryList    = new List <Ancestry>();
            var allowedTypeList = new List <string>
            {
                "construct",
                "fiend",
                "monstrosity",
                "ooze",
                "undead"
            };

            foreach (var bestiary in BestiaryList)
            {
                foreach (var monster in bestiary.monster)
                {
                    foreach (var validType in allowedTypeList)
                    {
                        if (!monster.TypeList.Contains(validType))
                        {
                            continue;
                        }
                        int xpValue     = monster.GetXpValue();
                        int monsterTier = BestiaryMonster.GetTier(xpValue);
                        if (monsterTier != tier)
                        {
                            continue;
                        }
                        var ancestry = AsAncestry(monster);
                        ancestryList.Add(ancestry);
                    }
                }
            }
            return(ancestryList);
        }
Esempio n. 2
0
        public List <Ancestry> ExportFloraAndFauna(int tier)
        {
            var ancestryList    = new List <Ancestry>();
            var allowedTypeList = new List <string>
            {
                "beast",
                "plant"
            };

            foreach (var bestiary in BestiaryList)
            {
                foreach (var monster in bestiary.monster)
                {
                    foreach (var validType in allowedTypeList)
                    {
                        if (!monster.TypeList.Contains(validType))
                        {
                            continue;
                        }
                        int xpValue     = monster.GetXpValue();
                        int monsterTier = BestiaryMonster.GetTier(xpValue);
                        if (monsterTier != tier)
                        {
                            continue;
                        }
                        var ancestry = AsAncestry(monster);
                        ancestryList.Add(ancestry);
                    }
                }
            }
            return(ancestryList);
        }
Esempio n. 3
0
        /// <summary>
        /// Converts a single bestiary monster into an Ancestry object
        /// </summary>
        /// <param name="monster"></param>
        /// <returns></returns>
        public Ancestry AsAncestry(BestiaryMonster monster)
        {
            var ancestry = new Ancestry();

            // Todo: convert ancestries
            ancestry.Name           = monster.name;
            ancestry.BaseAc         = monster.ArmorClass;
            ancestry.BaseToHit      = _calcBaseToHit(monster.action);
            ancestry.BaseNumAttacks = _calcNumAttacks(monster.action);
            ancestry.HitDice        = _parseHitDice(monster.hp);
            ancestry.MoraleBonus    = (int)((monster.Wis - 10) * 0.5);

            float baseAppearing = 200 / ancestry.HitDice;
            float mod           = baseAppearing * 0.15f;
            float fMin          = baseAppearing - mod;
            float fMax          = baseAppearing + mod;

            ancestry.MinAppearing = (int)fMin;
            ancestry.MaxAppearing = (int)fMax;

            return(ancestry);
        }
Esempio n. 4
0
        public List <Ancestry> ExportAncestryListForTier(int tier)
        {
            var ancestryList    = new List <Ancestry>();
            var allowedTypeList = new List <string>
            {
                "aberration",
                "dragon",
                "elemental",
                "fey",
                "giant",
                "humanoid"
            };

            foreach (var bestiary in BestiaryList)
            {
                foreach (var monster in bestiary.monster)
                {
                    foreach (var validType in allowedTypeList)
                    {
                        if (!monster.TypeList.Contains(validType))
                        {
                            continue;
                        }
                        int xpValue     = monster.GetXpValue();
                        int monsterTier = BestiaryMonster.GetTier(xpValue);
                        if (monsterTier != tier)
                        {
                            continue;
                        }
                        var ancestry = AsAncestry(monster);
                        ancestryList.Add(ancestry);
                    }
                }
            }
            return(ancestryList);
        }