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); }
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); }
/// <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); }
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); }