public async Task <IActionResult> CreateCharacter(CharacterForCreateDto characterForCreateDto) { if (await _repository.CharacterExist(characterForCreateDto.Nickname)) { return(BadRequest("Character with that nickname exist!")); } var characterToCreate = new Character { Nickname = characterForCreateDto.Nickname, UserId = Convert.ToInt32(characterForCreateDto.UserId), Level = 1, Experience = 1, FullHealth = 100, FullMana = 100, Cp = 1 }; await _repository.CreateCharacter(characterToCreate); return(StatusCode(201)); }
public async Task <IActionResult> CreateChar(CharacterForCreateDto characterForCreateDto) { characterForCreateDto.Name = characterForCreateDto.Name.ToLower(); if (await _repo.CharacterExists(characterForCreateDto.Name)) { return(BadRequest("Name already taken")); } var characterToCreate = new Character { }; characterToCreate.Name = characterForCreateDto.Name; characterToCreate.Class = characterForCreateDto.Class; characterToCreate.PictureUrl = characterForCreateDto.PictureUrl; characterToCreate.UserId = characterForCreateDto.UserId; characterToCreate.ActiveDungeonId = 1; characterToCreate.Hp = 100; characterToCreate.Progress = new Progress { }; characterToCreate.Progress.Character = characterToCreate; characterToCreate.Progress.DungeonProgress = new Collection <DungeonProgress> { }; characterToCreate.Progress.DungeonProgress.Add( new DungeonProgress { DungeonId = 1, Explored = 0, Progress = characterToCreate.Progress } ); characterToCreate.Progress.AreaProgress = new Collection <AreaProgress> { }; int counter = 1; while (counter < 4) { characterToCreate.Progress.AreaProgress.Add( new AreaProgress { AreaId = counter, DungeonId = 1, Explored = 0, Progress = characterToCreate.Progress } ); counter++; } ; if (characterForCreateDto.Class == "warrior") { characterToCreate.FastAttack = 10; characterToCreate.StrongAttack = 15; characterToCreate.SpecialAttack = 10; characterToCreate.FastDefense = 2; characterToCreate.StrongDefense = 1; characterToCreate.SpecialDefense = 0; characterToCreate.ClassIcon = "ra-axe"; int[] warriorAbilities = { 1, 2, 3, 10, 11, 12 }; characterToCreate.AbilityCharacters = new Collection <AbilityCharacter> { }; foreach (var ability in warriorAbilities) { characterToCreate.AbilityCharacters.Add( new AbilityCharacter { AbilityId = ability, Character = characterToCreate } ); } } else if (characterForCreateDto.Class == "rogue") { characterToCreate.FastAttack = 15; characterToCreate.StrongAttack = 10; characterToCreate.SpecialAttack = 10; characterToCreate.FastDefense = 1; characterToCreate.StrongDefense = 0; characterToCreate.SpecialDefense = 2; characterToCreate.ClassIcon = "ra-plain-dagger"; int[] rogueAbilities = { 4, 5, 6, 13, 14, 15 }; characterToCreate.AbilityCharacters = new Collection <AbilityCharacter> { }; foreach (var ability in rogueAbilities) { characterToCreate.AbilityCharacters.Add( new AbilityCharacter { AbilityId = ability, Character = characterToCreate } ); } } else { characterToCreate.FastAttack = 10; characterToCreate.StrongAttack = 10; characterToCreate.SpecialAttack = 15; characterToCreate.FastDefense = 0; characterToCreate.StrongDefense = 2; characterToCreate.SpecialDefense = 1; characterToCreate.ClassIcon = "ra-crystal-wand"; int[] mageAbilities = { 7, 8, 9, 16, 17, 18 }; characterToCreate.AbilityCharacters = new Collection <AbilityCharacter> { }; foreach (var ability in mageAbilities) { characterToCreate.AbilityCharacters.Add( new AbilityCharacter { AbilityId = ability, Character = characterToCreate } ); } } var createdCharacter = await _repo.CreateCharacter(characterToCreate); return(StatusCode(201)); }