public RaceBase(object RaceValue, CreatureTypeFoundation creatureType, bool isBestiaryStatBlock, IndividualStatBlock_Combat IndivSB, string searchName, IMonsterStatBlockBusiness monsterStatBlockBusiness) { BaseRaceType = RaceType.None; if (RaceValue == null) { return; } _indvSB = IndivSB; CreatureTypeMaster = new CreatureTypeMaster(); CreatureTypeMaster.CreatureTypeInstance = creatureType; try { RaceFoundationType = (RaceFoundation)RaceValue; BaseRaceType = RaceType.Race; Race_SB = monsterStatBlockBusiness.GetBestiaryMonsterByNamePathfinderDefault(RaceFoundationType.Name); if (Race_SB == null) { if (!string.IsNullOrEmpty(searchName) && searchName != RaceFoundationType.Name) { Race_SB = monsterStatBlockBusiness.GetBestiaryMonsterByNamePathfinderDefault(searchName); if (Race_SB == null) { throw new Exception(RaceFoundationType.Name + " has no Core Race entry"); } } else { throw new Exception(RaceFoundationType.Name + " has no Core Race entry"); } } // IsHumanoid = true; } catch { try { Race_SB = (MonsterStatBlock)RaceValue; if (Race_SB.Environment.Length > 0 && isBestiaryStatBlock) { BaseRaceType = RaceType.BestiaryStatBlock; } else { BaseRaceType = RaceType.StatBlock; } if (Race_SB.Race.Contains("humanoid") || Race_SB.Type.Contains("humanoid")) { // IsHumanoid = true; } UseRacialHD = Race_SB.DontUseRacialHD ? false : true; int HD = RacialHDValue(); if (CreatureTypeMaster.GetSaveType("will") == StatBlockInfo.SaveBonusType.Varies) { int Will = Convert.ToInt32(Race_SB.Will); if (HasFeat("Iron Will")) { Will -= 2; } WillOverride = StatBlockInfo.ComputeSaveBonusType(HD, Race_SB.GetAbilityScoreValue(StatBlockInfo.WIS), Will); } if (CreatureTypeMaster.GetSaveType("ref") == StatBlockInfo.SaveBonusType.Varies) { int Ref = Convert.ToInt32(Race_SB.Ref); if (HasFeat("Lightning Reflexes")) { Ref -= 2; } Ref -= GetRefOnGoingMods(); RefOverride = StatBlockInfo.ComputeSaveBonusType(HD, Race_SB.GetAbilityScoreValue(StatBlockInfo.DEX), Ref); } if (CreatureTypeMaster.GetSaveType("fort") == StatBlockInfo.SaveBonusType.Varies) { int Fort = Convert.ToInt32(Race_SB.Fort); if (HasFeat("Great Fortitude")) { Fort -= 2; } FortOverride = StatBlockInfo.ComputeSaveBonusType(HD, Race_SB.GetAbilityScoreValue(StatBlockInfo.CON), Fort); } BaseBABType = StatBlockInfo.ComputeBABType(RacialHDValue(), Convert.ToInt32(Race_SB.BaseAtk)); ParseSkills(); } catch { } } }