public int GetBaseAbilityMod(AbilityScores.AbilityScores.AbilityName abilityName) { switch (abilityName) { case AbilityScores.AbilityScores.AbilityName.Charisma: return(_abilityValues.ChaBaseMod); case AbilityScores.AbilityScores.AbilityName.Constitution: return(_abilityValues.ConBaseMod); case AbilityScores.AbilityScores.AbilityName.Dexterity: return(_abilityValues.DexBaseMod); case AbilityScores.AbilityScores.AbilityName.Intelligence: return(_abilityValues.IntBaseMod); case AbilityScores.AbilityScores.AbilityName.Strength: return(_abilityValues.StrBaseMod); case AbilityScores.AbilityScores.AbilityName.Wisdom: return(_abilityValues.WisBaseMod); default: return(-100); } }
public void CheckCMB() { string CheckName = "CMB"; int CMB = 0; AbilityScores.AbilityScores.AbilityName abilityName = AbilityScores.AbilityScores.AbilityName.Strength; if (SizeCat <= StatBlockInfo.SizeCategories.Tiny) { abilityName = AbilityScores.AbilityScores.AbilityName.Dexterity; } else if (_sbCheckerBaseInput.MonsterSBSearch.HasFeat("Agile Maneuvers")) { abilityName = AbilityScores.AbilityScores.AbilityName.Dexterity; } else if (_sbCheckerBaseInput.MonsterSBSearch.HasDefensiveAbility("incorporeal")) { abilityName = AbilityScores.AbilityScores.AbilityName.Dexterity; } int AbilityMod = StatBlockInfo.GetAbilityModifier(_sbCheckerBaseInput.MonsterSBSearch.GetAbilityScoreValue(abilityName)); // int BAB = Convert.ToInt32(Utility.GetNonParenValue(BaseAtk)); int BAB = _sbCheckerBaseInput.CharacterClasses.GetBABValue() + (_sbCheckerBaseInput.CharacterClasses.HasClass("animal companion") ? 0 : _sbCheckerBaseInput.Race_Base.RaceBAB()); //was taken out before, added back in 11/8/2014 if (HasMonk) { int MonkLevel = _sbCheckerBaseInput.CharacterClasses.FindClassLevel("Monk"); if (MonkLevel >= 3) { BAB = MonkLevel + _sbCheckerBaseInput.CharacterClasses.GetNonMonkBABValue() + _sbCheckerBaseInput.Race_Base.RaceBAB(); } } CMB = BAB + (SizeMod * -1) + AbilityMod + OnGoing; string formula = BAB.ToString() + " BAB " + CommonMethods.GetPlusSign(SizeMod * -1) + (SizeMod * -1).ToString() + " SizeMod +" + AbilityMod.ToString() + PathfinderConstants.SPACE + abilityName.ToString() + " AbilityMod"; if (OnGoing != 0) { formula += "+" + OnGoing.ToString() + " (" + formulaOnGoing + ") OnGoingAttackMod"; } _sbCheckerBaseInput.MessageXML.AddInfo("Base BAB: " + (BAB + (SizeMod) + AbilityMod).ToString()); if (_sbCheckerBaseInput.MonsterSBSearch.HasSubType("swarm")) { CMB = 0; formula = "0 swarm"; } string holdCMB = Utility.GetNonParenValue(CMBString); if (holdCMB == "-") { holdCMB = "0"; } if (CMB == Convert.ToInt32(holdCMB)) { _sbCheckerBaseInput.MessageXML.AddPass(CheckName, formula); } else { _sbCheckerBaseInput.MessageXML.AddFail(CheckName, CMB.ToString(), holdCMB, formula); } }
public int GetAbilityScoreValue(AbilityScores.AbilityScores.AbilityName abilityName) { return(_abilityValues.GetAbilityScoreValue(abilityName)); }