using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DSALib; namespace DSACore.Models.Database { public class DatabaseChar { public DatabaseChar() { } public DatabaseChar(int id, string name, string rasse, List skills, List talents, List advantages, List spells, List weaponTalents) { Id = id; Name = name ?? throw new ArgumentNullException(nameof(name)); Rasse = rasse ?? throw new ArgumentNullException(nameof(rasse)); Skills = skills ?? throw new ArgumentNullException(nameof(skills)); Talents = talents ?? throw new ArgumentNullException(nameof(talents)); Advantages = advantages ?? throw new ArgumentNullException(nameof(advantages)); Spells = spells ?? throw new ArgumentNullException(nameof(spells)); WeaponTalents = weaponTalents ?? throw new ArgumentNullException(nameof(weaponTalents)); } public int Id { get; set; } public string Name { get; set; } public string Rasse { get; set; } public List Skills { get; set; } = new List(); public List Talents { get; set; } = new List(); public List Advantages { get; set; } = new List(); public List Spells { get; set; } = new List(); public List WeaponTalents { get; set; } = new List(); public static void LoadChar(DSA_Game.Characters.Character file, out GroupChar group, out DatabaseChar data) { group = new GroupChar(); data = new DatabaseChar(); group.Name = file.Name.Split(' ').First(); group.Weapon = new Weapon(); group.Lp = group.LpMax = file.Lebenspunkte_Basis; group.As = group.AsMax = file.Astralpunkte_Basis; group.Weapon = new Weapon(); data.Name = file.Name; data.Advantages = file.Vorteile.Select(x => new Advantage(x.Name, x.Value)).ToList(); data.Skills = file.Eigenschaften.Select(x => new Field(x.Key, x.Value)).ToList(); data.Spells = file.Zauber.Select(x => new CharSpell(x.Representation, x.Value)).ToList(); data.Talents = file.Talente.Select(x => new Field(x.Name, x.Value)).ToList(); data.WeaponTalents = file.Kampftalente.Select(x => new WeaponTalent(x.Name, x.At, x.Pa)).ToList(); } } }