Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }