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();
        }
Beispiel #2
0
        public Library.Character SeedCharacter()
        {
            var character = new Library.Character
            {
                Name       = "Test",
                Bio        = "Stuff",
                CampaignID = 1,
                UserId     = 1,
                RaceID     = 1,
                ClassID    = 1,
                Experience = 0,
                Level      = 1,
                Str        = 1,
                Dex        = 8,
                Con        = 12,
                Int        = 15,
                Wis        = 11,
                Cha        = 5,
                Speed      = 1,
                MaxHP      = 1
            };


            return(character);
        }
Beispiel #3
0
        public void SetRolls(IEnumerable <int> rolls, Library.Character character)
        {
            var attributes = rolls.ToList();

            character.Str = attributes[0];
            character.Dex = attributes[1];
            character.Con = attributes[2];
            character.Int = attributes[3];
            character.Wis = attributes[4];
            character.Cha = attributes[5];
        }
 public void AddCharacter(Library.Character character)
 {
     if (character != null)
     {
         _db.Add(Mapper.Map(character));
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
 public void SetMaxHp(Library.Character character)
 {
     if (_db.Class.Any(c => c.ClassId == character.ClassID))
     {
         character.MaxHP = _db.Class.First(c => c.ClassId == character.ClassID).Hd;
     }
     else
     {
         throw new ArgumentException("No class with this ID exists.");
     }
 }
        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 SetSpeed(Library.Character character)
 {
     if (_db.Race.Any(r => r.RaceId == character.RaceID))
     {
         if (character.RaceID == 1 || character.RaceID == 4 ||
             character.RaceID == 5)
         {
             character.Speed = 20;
         }
         else
         {
             character.Speed = 30;
         }
     }
     else
     {
         throw new ArgumentException("No race with this ID exists.");
     }
 }
        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...");
            }
        }
Beispiel #9
0
 public static Character Map(Library.Character character) => new Character
 {
     CharacterId = character.CharacterID,
     Name        = character.Name,
     Bio         = character.Bio,
     UsersId     = character.UserId,
     CampaignId  = character.CampaignID,
     RaceId      = character.RaceID,
     ClassId     = character.ClassID,
     Experience  = (int)character.Experience,
     Level       = (int)character.Level,
     Str         = character.Str,
     Dex         = character.Dex,
     Con         = character.Con,
     Int         = character.Int,
     Wis         = character.Wis,
     Cha         = character.Cha,
     Speed       = character.Speed,
     MaxHp       = character.MaxHP
 };
Beispiel #10
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);
        }
Beispiel #11
0
        public void RollsSetProperly()
        {
            var rand   = new RngProvider();
            var roller = new RollManager(rand);

            var        character = new Library.Character();
            List <int> rolls     = new List <int>()
            {
                5, 18, 10, 11, 12, 14
            };

            roller.SetRolls(rolls, character);

            // Assert

            Assert.Equal(5, character.Str);
            Assert.Equal(18, character.Dex);
            Assert.Equal(10, character.Con);
            Assert.Equal(11, character.Int);
            Assert.Equal(12, character.Wis);
            Assert.Equal(14, character.Cha);
        }