コード例 #1
0
        public static int SetInitialHitPoints(int Level, IClass Class, AbilityScores AbilityScores, int?CurrentHP)
        {
            int returnHP = 0;

            if (CurrentHP == null)
            {
                if (Level == 1)
                {
                    returnHP = Class.HitDie + AbilityScores.Constitution.HitPointAdjustment;
                }
                else
                {
                    for (int i = 0; i <= Level - 1; i++)
                    {
                        int roll = 0;
                        if (i == 0)
                        {
                            roll = Class.HitDie;
                        }
                        else
                        {
                            roll = DiceManager.Roll(1, Class.HitDie).Total + AbilityScores.Constitution.HitPointAdjustment;
                        }
                        returnHP += roll;
                    }
                }
            }
            else
            {
                returnHP = Convert.ToInt32(CurrentHP);
            }
            return(returnHP);
        }
コード例 #2
0
        private static int GetAttackRoll()
        {
            var baseAttackRoll        = DiceManager.Roll(1, 21).Total;
            var bonusAttackAdjustment = CharacterCombatMaths.TotalHitAdjustments(_person);
            var attackRoll            = baseAttackRoll + bonusAttackAdjustment;

            return(attackRoll);
        }
コード例 #3
0
        private int GetDamageRoll()
        {
            var baseDamageRoll        = DiceManager.Roll(CurrentPlayer().PrimaryWeapon.Damage.Amount, CurrentPlayer().PrimaryWeapon.Damage.SidedDie).Total;
            var bonusDamageAdjustment = 1;
            var DamageRoll            = baseDamageRoll + bonusDamageAdjustment;

            return(DamageRoll);
        }
コード例 #4
0
        private int GetAttackRoll()
        {
            var baseAttackRoll        = DiceManager.Roll(1, 21).Total;
            var bonusAttackAdjustment = CharacterCombatMaths.TotalHitAdjustments(CurrentPlayer());
            var attackRoll            = baseAttackRoll + bonusAttackAdjustment;

            return(attackRoll);
        }
コード例 #5
0
        public static int UpdateHitPoints(IClass Class, AbilityScores AbilityScores, int CurrentHP, int newLevels = 1)
        {
            int newRoll = CurrentHP;

            for (int i = 0; i <= newLevels - 1; i++)
            {
                newRoll += DiceManager.Roll(1, Class.HitDie).Total + AbilityScores.Constitution.HitPointAdjustment;
            }
            return(newRoll);
        }
コード例 #6
0
        private static int GetMeleeDamageTotal()
        {
            int baseDamageRoll;

            if (_specificWeapon != null)
            {
                baseDamageRoll = DiceManager.Roll(_person.PrimaryWeapon.Damage.Amount, _specificWeapon.Damage.SidedDie).Total;
            }
            else
            {
                baseDamageRoll = DiceManager.Roll(_person.PrimaryWeapon.Damage.Amount, _person.PrimaryWeapon.Damage.SidedDie).Total;
            }
            var bonusDamageAdjustment = 1;
            var DamageRoll            = baseDamageRoll + bonusDamageAdjustment;

            return(DamageRoll);
        }
コード例 #7
0
        public static AbilityScores RandomizeAbilityScores(AbilityScores abilityScores, IClass _char = null)
        {
            AbilityScoreManager abilityScoreRules = new AbilityScoreManager();

            List <int> allRolls = new List <int>();

            allRolls.Add(DiceManager.FourDSixDropTheLowest());
            allRolls.Add(DiceManager.FourDSixDropTheLowest());
            allRolls.Add(DiceManager.FourDSixDropTheLowest());
            allRolls.Add(DiceManager.FourDSixDropTheLowest());
            allRolls.Add(DiceManager.FourDSixDropTheLowest());
            allRolls.Add(DiceManager.FourDSixDropTheLowest());

            var orderedList = allRolls.OrderByDescending(x => x);

            List <AbilityScoreType> primeAdded = new List <AbilityScoreType>();

            int orderedI = 0;

            foreach (var minIndi in _char.MinimumAbilityScoreRequirements)
            {
                var thisRoll = orderedList.ElementAt(orderedI);
                switch (minIndi.Key)
                {
                case AbilityScoreType.Strength:
                    abilityScores.Strength = abilityScoreRules.SetStrength(thisRoll);
                    primeAdded.Add(AbilityScoreType.Strength);
                    ++orderedI;
                    break;

                case AbilityScoreType.Dextarity:
                    abilityScores.Dexterity = abilityScoreRules.SetDexterity(thisRoll);
                    primeAdded.Add(AbilityScoreType.Strength);
                    ++orderedI;
                    break;

                case AbilityScoreType.Constitution:
                    abilityScores.Constitution = abilityScoreRules.SetConstitution(thisRoll);
                    primeAdded.Add(AbilityScoreType.Strength);
                    ++orderedI;
                    break;

                case AbilityScoreType.Intelligence:
                    abilityScores.Intelligence = abilityScoreRules.SetIntelligence(thisRoll);
                    primeAdded.Add(AbilityScoreType.Intelligence);
                    ++orderedI;
                    break;

                case AbilityScoreType.Wisdom:
                    abilityScores.Wisdom = abilityScoreRules.SetWisdom(thisRoll);
                    primeAdded.Add(AbilityScoreType.Wisdom);
                    ++orderedI;
                    break;

                case AbilityScoreType.Charisma:
                    abilityScores.Charisma = abilityScoreRules.SetCharisma(thisRoll);
                    primeAdded.Add(AbilityScoreType.Charisma);
                    ++orderedI;
                    break;
                }
            }

            List <AbilityScoreType> AllAbilityScores = new List <AbilityScoreType>
            {
                AbilityScoreType.Strength,
                AbilityScoreType.Dextarity,
                AbilityScoreType.Constitution,
                AbilityScoreType.Intelligence,
                AbilityScoreType.Wisdom,
                AbilityScoreType.Charisma
            };

            foreach (var this_ability in AllAbilityScores)
            {
                var thisRoll = orderedList.ElementAt(orderedI);
                if (!primeAdded.Contains(this_ability))
                {
                    switch (this_ability)
                    {
                    case AbilityScoreType.Strength:
                        abilityScores.Strength = abilityScoreRules.SetStrength(thisRoll);
                        ++orderedI;
                        break;

                    case AbilityScoreType.Dextarity:
                        abilityScores.Dexterity = abilityScoreRules.SetDexterity(thisRoll);
                        ++orderedI;
                        break;

                    case AbilityScoreType.Constitution:
                        abilityScores.Constitution = abilityScoreRules.SetConstitution(thisRoll);
                        ++orderedI;
                        break;

                    case AbilityScoreType.Intelligence:
                        abilityScores.Intelligence = abilityScoreRules.SetIntelligence(thisRoll);
                        ++orderedI;
                        break;

                    case AbilityScoreType.Wisdom:
                        abilityScores.Wisdom = abilityScoreRules.SetWisdom(thisRoll);
                        ++orderedI;
                        break;

                    case AbilityScoreType.Charisma:
                        abilityScores.Charisma = abilityScoreRules.SetCharisma(thisRoll);
                        ++orderedI;
                        break;
                    }
                }
            }

            return(abilityScores);
        }