Пример #1
0
        public void ToDomain_ShouldCalculateHpCorrectly_NoItems_MultipleClasses_WithConMod()
        {
            RpgClass firstClass = new RpgClass {
                ClassLevel = 2, HitDiceValue = 10, Name = "firstClass"
            };
            RpgClass secondClass = new RpgClass {
                ClassLevel = 1, HitDiceValue = 6, Name = "secondClass"
            };
            RpgClass thirdClass = new RpgClass {
                ClassLevel = 5, HitDiceValue = 12, Name = "thirdClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                firstClass, secondClass, thirdClass
            };
            Stats conMod = new Stats {
                Constitution = 14
            };
            Character noItemCharacter = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(noItemCharacter);

            Assert.Equal(67, actualCharacter.MaxHitpoints);
            Assert.Equal(67, actualCharacter.CurrentHitpoints);
        }
Пример #2
0
        public async Task <List <Character> > GetCharacterByClassUrl(string url)
        {
            List <Character> characters = new List <Character>();
            RpgClass         rpg        = await _rpgclassService.GetRpgClassbyUrl(url);

            return(await _dataContext.Characters.Include(q => q.Class).Where(x => x.RpgClassId == rpg.Id).ToListAsync());
        }
Пример #3
0
        public async Task <ServiceResponse <RpgClass> > GetRpgClassbyId(int id)
        {
            ServiceResponse <RpgClass> serviceResponse = new ServiceResponse <RpgClass>();
            RpgClass rpg = await _dataContext.RpgClasses.FirstOrDefaultAsync(x => x.Id == id);

            serviceResponse.Data    = rpg;
            serviceResponse.Success = true;
            return(serviceResponse);
        }
Пример #4
0
        public static RpgClassDTO GetDTOFromClass(RpgClass rpgClass)
        {
            var rpgClassDTO = new RpgClassDTO()
            {
                level             = rpgClass.Level,
                hitDice           = rpgClass.HitDice,
                name              = rpgClass.Name,
                fortitudeBaseSave = rpgClass.FortitudeBaseSave,
                reflexBaseSave    = rpgClass.ReflexBaseSave,
                willBaseSave      = rpgClass.WillBaseSave,
                baseAttacks       = rpgClass.BaseAttacks
            };

            return(rpgClassDTO);
        }
Пример #5
0
        public static RpgClass GetRpgClassFromDTO(RpgClassDTO classDTO)
        {
            var rpgClass = new RpgClass()
            {
                Level             = classDTO.level,
                HitDice           = classDTO.hitDice,
                Name              = classDTO.name,
                FortitudeBaseSave = classDTO.fortitudeBaseSave,
                ReflexBaseSave    = classDTO.reflexBaseSave,
                WillBaseSave      = classDTO.willBaseSave,
                BaseAttacks       = classDTO.baseAttacks
            };

            return(rpgClass);
        }
Пример #6
0
        public void ToDomain_ShouldCalculateHpCorrectly_WithItemsThatModifyCon()
        {
            RpgClass firstClass = new RpgClass {
                ClassLevel = 2, HitDiceValue = 10, Name = "firstClass"
            };
            RpgClass secondClass = new RpgClass {
                ClassLevel = 1, HitDiceValue = 6, Name = "secondClass"
            };
            RpgClass thirdClass = new RpgClass {
                ClassLevel = 5, HitDiceValue = 12, Name = "thirdClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                firstClass, secondClass, thirdClass
            };
            Modifier conModification = new Modifier
            {
                AffectedObject = "stats",
                AffectedValue  = "constitution",
                Value          = 2
            };
            Item item = new Item {
                Name = "Ioun Stone of Fortitude", Modifier = conModification
            };
            Stats conMod = new Stats {
                Constitution = 14
            };
            Character characterWithConItem = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
                Items   = new List <Item> {
                    item, item
                }
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(characterWithConItem);

            Assert.Equal(83, actualCharacter.MaxHitpoints);
            Assert.Equal(83, actualCharacter.CurrentHitpoints);
        }
Пример #7
0
        public void ToDomain_ShouldCalculateHpCorrectly_NoItems_SingleClass_WithConMod(int constitutionScore, int classLevel, int hitDiceValue, int expectedHp)
        {
            RpgClass onlyClass = new RpgClass {
                ClassLevel = classLevel, HitDiceValue = hitDiceValue, Name = "singleClass"
            };
            List <RpgClass> singletonClass = new List <RpgClass> {
                onlyClass
            };
            Stats conMod = new Stats {
                Constitution = constitutionScore
            };
            Character noItemCharacter = new Character
            {
                Classes = singletonClass,
                Stats   = conMod,
            };

            DomainCharacter actualCharacter = CharacterConverter.ToDomain(noItemCharacter);

            Assert.Equal(expectedHp, actualCharacter.MaxHitpoints);
            Assert.Equal(expectedHp, actualCharacter.CurrentHitpoints);
        }
Пример #8
0
        public async Task <RpgClass> GetRpgClassbyUrl(string url)
        {
            RpgClass rpg = await _dataContext.RpgClasses.FirstOrDefaultAsync(c => c.Url.ToLower().Equals(url.ToLower()));

            return(rpg);
        }