internal static async Task SaveSkill(object[] args) { int charId = (int)args[0]; ushort skillId = (ushort)args[1]; byte skillLevel = (byte)args[2]; byte skillNumber = (byte)args[3]; byte skillPoints = (byte)args[4]; using var database = DependencyContainer.Instance.Resolve <IDatabase>(); var dbSkill = database.Skills.First(s => s.SkillId == skillId && s.SkillLevel == skillLevel); var skillToAdd = new DbCharacterSkill() { CharacterId = charId, SkillId = dbSkill.Id, Number = skillNumber }; database.CharacterSkills.Add(skillToAdd); var character = database.Characters.Find(charId); character.SkillPoint -= skillPoints; await database.SaveChangesAsync(); }
public async Task Clear() { var character = await _database.Characters.Include(x => x.Skills).FirstAsync(x => x.Id == _ownerId); character.SkillPoint = SkillPoints; character.Skills.Clear(); foreach (var skill in Skills) { // Save char and learned skill. var skillToAdd = new DbCharacterSkill() { CharacterId = _ownerId, SkillId = skill.Value.SkillId, SkillLevel = skill.Value.SkillLevel, Number = skill.Key }; character.Skills.Add(skillToAdd); } await _database.SaveChangesAsync(); Skills.Clear(); }
internal async Task SaveSkill(object[] args) { int charId = (int)args[0]; ushort skillId = (ushort)args[1]; byte skillLevel = (byte)args[2]; byte skillNumber = (byte)args[3]; var dbSkill = _database.Skills.First(s => s.SkillId == skillId && s.SkillLevel == skillLevel); var skillToAdd = new DbCharacterSkill() { CharacterId = charId, SkillId = dbSkill.Id, Number = skillNumber }; _database.CharacterSkills.Add(skillToAdd); await _database.SaveChangesAsync(); }