コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 public int GetAbilityScoreValue(AbilityScores.AbilityScores.AbilityName abilityName)
 {
     return(_abilityValues.GetAbilityScoreValue(abilityName));
 }