public void CreateCharacter(Library.Character character, IEnumerable <int> skills)
        {
            var skillManager = new SkillManager();
            var modManager   = new ModifierManager();

            SetSpeed(character);
            SetMaxHp(character);

            var stats = new Library.CharStats();

            stats.CharacterID = character.CharacterID;
            stats.HP          = character.MaxHP;
            stats.PB          = 2;

            modManager.SetModifiers(character, stats);
            SetSavingThrows(character, stats);
            skillManager.SetSkills(stats);
            skillManager.UpdateSkills(skills.ToList(), stats);

            AddCharacter(character);
            Save();

            AddCharStats(stats);
            Save();
        }
示例#2
0
        public void SetSkills(Library.CharStats stats)
        {
            //STR
            stats.Athletics = stats.STR_Mod;

            //DEX
            stats.Acrobatics    = stats.DEX_Mod;
            stats.SleightOfHand = stats.DEX_Mod;
            stats.Stealth       = stats.DEX_Mod;

            //INT
            stats.Arcana        = stats.INT_Mod;
            stats.History       = stats.INT_Mod;
            stats.Investigation = stats.INT_Mod;
            stats.Nature        = stats.INT_Mod;
            stats.Religion      = stats.INT_Mod;

            //WIS
            stats.AnimalHandling = stats.WIS_Mod;
            stats.Insight        = stats.WIS_Mod;
            stats.Medicine       = stats.WIS_Mod;
            stats.Perception     = stats.WIS_Mod;
            stats.Survival       = stats.WIS_Mod;

            //CHA
            stats.Deception    = stats.CHA_Mod;
            stats.Intimidation = stats.CHA_Mod;
            stats.Persuasion   = stats.CHA_Mod;
            stats.Performance  = stats.CHA_Mod;
        }
        public void SetSavingThrows(Library.Character character, Library.CharStats stats)
        {
            if (character != null && stats != null)
            {
                var proficiency = GetSavingThrowProficiency(character.ClassID).ToList();
                int pb          = stats.PB;

                stats.STR_Save = CalculateSavingThrow(stats.STR_Mod, pb, proficiency[0]);
                stats.DEX_Save = CalculateSavingThrow(stats.DEX_Mod, pb, proficiency[1]);
                stats.CON_Save = CalculateSavingThrow(stats.CON_Mod, pb, proficiency[2]);
                stats.INT_Save = CalculateSavingThrow(stats.INT_Mod, pb, proficiency[3]);
                stats.WIS_Save = CalculateSavingThrow(stats.WIS_Mod, pb, proficiency[4]);
                stats.CHA_Save = CalculateSavingThrow(stats.CHA_Mod, pb, proficiency[5]);
            }
            else
            {
                throw new ArgumentNullException("Character cannot be null...");
            }
        }
        public void SetModifiers(Library.Character character, Library.CharStats stats)
        {
            if (character != null && stats != null)
            {
                stats.STR_Mod = CalculateModifier(character.Str);
                stats.DEX_Mod = CalculateModifier(character.Dex);
                stats.CON_Mod = CalculateModifier(character.Con);
                stats.INT_Mod = CalculateModifier(character.Int);
                stats.WIS_Mod = CalculateModifier(character.Wis);
                stats.CHA_Mod = CalculateModifier(character.Cha);

                stats.AC         = 10 + stats.DEX_Mod;
                character.MaxHP += stats.CON_Mod;
            }
            else
            {
                throw new ArgumentNullException("Character cannot be null...");
            }
        }
示例#5
0
        public Library.CharStats SeedCharStats(Library.Character character)
        {
            var stats = new Library.CharStats
            {
                CharacterID = 1,
                HP          = character.MaxHP,
                AC          = 16,
                PB          = 2,
                Gold        = 0,
                STR_Mod     = -5,
                DEX_Mod     = -1,
                CON_Mod     = 1,
                INT_Mod     = 2,
                WIS_Mod     = 0,
                CHA_Mod     = -3
            };


            return(stats);
        }
示例#6
0
 public static CharStats Map(Library.CharStats c) => new CharStats
 {
     CharacterId    = c.CharacterID,
     Hp             = c.HP,
     Ac             = c.AC,
     Pb             = c.PB,
     Gold           = c.Gold,
     Acrobatics     = c.Acrobatics,
     AnimalHandling = c.AnimalHandling,
     Arcana         = c.Arcana,
     Athletics      = c.Athletics,
     Deception      = c.Deception,
     History        = c.History,
     Insight        = c.Insight,
     Investigation  = c.Investigation,
     Intimidation   = c.Intimidation,
     Medicine       = c.Medicine,
     Nature         = c.Nature,
     Perception     = c.Perception,
     Performance    = c.Performance,
     Persuasion     = c.Persuasion,
     Religion       = c.Religion,
     SleightOfHand  = c.SleightOfHand,
     Stealth        = c.Stealth,
     Survival       = c.Survival,
     StrSave        = c.STR_Save,
     DexSave        = c.DEX_Save,
     ConSave        = c.CON_Save,
     IntSave        = c.INT_Save,
     WisSave        = c.WIS_Save,
     ChaSave        = c.CHA_Save,
     StrMod         = c.STR_Mod,
     DexMod         = c.DEX_Mod,
     ConMod         = c.CON_Mod,
     IntMod         = c.INT_Mod,
     WisMod         = c.WIS_Mod,
     ChaMod         = c.CHA_Mod
 };
        public void AddCharStats(Library.CharStats stats)
        {
            stats.CharacterID = _db.Character.Last().CharacterId;

            _db.Add(Mapper.Map(stats));
        }
示例#8
0
        public void UpdateSkills(List <int> skills, Library.CharStats stats)
        {
            if (stats != null)
            {
                foreach (int skill in skills)
                {
                    switch (skill)
                    {
                    case 1:
                        // Acrobatics
                        stats.Acrobatics += stats.PB;
                        break;

                    case 2:
                        // AnimalHandling
                        stats.AnimalHandling += stats.PB;
                        break;

                    case 3:
                        // Arcana
                        stats.Arcana += stats.PB;
                        break;

                    case 4:
                        // Athletics
                        stats.Athletics += stats.PB;
                        break;

                    case 5:
                        // Deception
                        stats.Deception += stats.PB;
                        break;

                    case 6:
                        // History
                        stats.History += stats.PB;
                        break;

                    case 7:
                        // Insight
                        stats.Insight += stats.PB;
                        break;

                    case 8:
                        // Intimidation
                        stats.Intimidation += stats.PB;
                        break;

                    case 9:
                        // Investigation
                        stats.Investigation += stats.PB;
                        break;

                    case 10:
                        // Medicine
                        stats.Medicine += stats.PB;
                        break;

                    case 11:
                        // Nature
                        stats.Nature += stats.PB;
                        break;

                    case 12:
                        // Perception
                        stats.Perception += stats.PB;
                        break;

                    case 13:
                        // Performance
                        stats.Performance += stats.PB;
                        break;

                    case 14:
                        // Persuasion
                        stats.Persuasion += stats.PB;
                        break;

                    case 15:
                        // Religion
                        stats.Religion += stats.PB;
                        break;

                    case 16:
                        // Sleight Of Hand
                        stats.SleightOfHand += stats.PB;
                        break;

                    case 17:
                        // Stealth
                        stats.Stealth += stats.PB;
                        break;

                    case 18:
                        // Survival
                        stats.Survival += stats.PB;
                        break;

                    default:
                        throw new ArgumentException("This skill does not exist.");
                    }
                }
            }
            else
            {
                throw new ArgumentNullException("Character Stats cannot be null...");
            }
        }