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); }
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()); }
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); }
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); }
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); }
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); }
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); }
public async Task <RpgClass> GetRpgClassbyUrl(string url) { RpgClass rpg = await _dataContext.RpgClasses.FirstOrDefaultAsync(c => c.Url.ToLower().Equals(url.ToLower())); return(rpg); }