summaryrefslogtreecommitdiff
path: root/dsa/DSALib/Models/Database
diff options
context:
space:
mode:
Diffstat (limited to 'dsa/DSALib/Models/Database')
-rw-r--r--dsa/DSALib/Models/Database/DataObject.cs13
-rw-r--r--dsa/DSALib/Models/Database/Dsa/Advantage.cs16
-rw-r--r--dsa/DSALib/Models/Database/Dsa/CharSpell.cs16
-rw-r--r--dsa/DSALib/Models/Database/Dsa/DatabaseChar.cs63
-rw-r--r--dsa/DSALib/Models/Database/Dsa/Field.cs16
-rw-r--r--dsa/DSALib/Models/Database/Dsa/GeneralSpell.cs20
-rw-r--r--dsa/DSALib/Models/Database/Dsa/GroupChar.cs13
-rw-r--r--dsa/DSALib/Models/Database/Dsa/Inventory.cs12
-rw-r--r--dsa/DSALib/Models/Database/Dsa/Talent.cs24
-rw-r--r--dsa/DSALib/Models/Database/Dsa/Weapon.cs52
-rw-r--r--dsa/DSALib/Models/Database/Dsa/WeaponTalent.cs18
-rw-r--r--dsa/DSALib/Models/Database/Groups/DSAGroup.cs10
-rw-r--r--dsa/DSALib/Models/Database/Groups/Group.cs9
-rw-r--r--dsa/DSALib/Models/Database/IDataObject.cs7
14 files changed, 289 insertions, 0 deletions
diff --git a/dsa/DSALib/Models/Database/DataObject.cs b/dsa/DSALib/Models/Database/DataObject.cs
new file mode 100644
index 0000000..59cfdf2
--- /dev/null
+++ b/dsa/DSALib/Models/Database/DataObject.cs
@@ -0,0 +1,13 @@
+namespace DSALib.Models.Database
+{
+ public class DataObject : IDataObject
+ {
+
+ public override string ToString()
+ {
+ return Name;
+ }
+
+ public string Name { get; set; }
+ }
+}
diff --git a/dsa/DSALib/Models/Database/Dsa/Advantage.cs b/dsa/DSALib/Models/Database/Dsa/Advantage.cs
new file mode 100644
index 0000000..2ed0bf9
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/Advantage.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class Advantage
+ {
+ public Advantage(string name, string value = "")
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ Value = value ?? throw new ArgumentNullException(nameof(value));
+ }
+
+ public string Name { get; set; }
+ public string Value { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/CharSpell.cs b/dsa/DSALib/Models/Database/Dsa/CharSpell.cs
new file mode 100644
index 0000000..d08bc74
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/CharSpell.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class CharSpell
+ {
+ public CharSpell(string representation, int value)
+ {
+ this.representation = representation ?? throw new ArgumentNullException(nameof(representation));
+ this.value = value;
+ }
+
+ public string representation { get; set; }
+ public int value { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/DatabaseChar.cs b/dsa/DSALib/Models/Database/Dsa/DatabaseChar.cs
new file mode 100644
index 0000000..1312f95
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/DatabaseChar.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using DSALib.DSA_Game.Characters;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class DatabaseChar
+ {
+ public DatabaseChar()
+ {
+ }
+
+ public DatabaseChar(int id, string name, string rasse, List<Field> skills, List<Field> talents,
+ List<Advantage> advantages, List<CharSpell> spells, List<WeaponTalent> weaponTalents)
+ {
+ Id = id;
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ Race = 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 Race { get; set; }
+
+ public List<Field> Skills { get; set; } = new List<Field>();
+
+ public List<Field> Talents { get; set; } = new List<Field>();
+
+ public List<Advantage> Advantages { get; set; } = new List<Advantage>();
+
+ public List<CharSpell> Spells { get; set; } = new List<CharSpell>();
+
+ public List<WeaponTalent> WeaponTalents { get; set; } = new List<WeaponTalent>();
+
+
+ public static void LoadChar(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();
+ }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/Field.cs b/dsa/DSALib/Models/Database/Dsa/Field.cs
new file mode 100644
index 0000000..6d1b82e
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/Field.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class Field
+ {
+ public Field(string name, int value = 0)
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ Value = value;
+ }
+
+ public string Name { get; set; }
+ public int Value { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/GeneralSpell.cs b/dsa/DSALib/Models/Database/Dsa/GeneralSpell.cs
new file mode 100644
index 0000000..964c38e
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/GeneralSpell.cs
@@ -0,0 +1,20 @@
+namespace DSALib.Models.Database.Dsa
+{
+ public class GeneralSpell : Talent
+ {
+ public char Comlexity = 'A';
+
+ public GeneralSpell(string name, string roll, char comlexity = 'A') : base(name, roll)
+ {
+ Comlexity = comlexity;
+ }
+
+ public GeneralSpell(string name, string roll) : base(name, roll)
+ {
+ }
+
+ public GeneralSpell()
+ {
+ }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/GroupChar.cs b/dsa/DSALib/Models/Database/Dsa/GroupChar.cs
new file mode 100644
index 0000000..a0115cd
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/GroupChar.cs
@@ -0,0 +1,13 @@
+namespace DSALib.Models.Database.Dsa
+{
+ public class GroupChar
+ {
+ public string Name { get; set; }
+ public int Id { get; set; }
+ public int Lp { get; set; }
+ public int LpMax { get; set; }
+ public int As { get; set; }
+ public int AsMax { get; set; }
+ public Weapon Weapon { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/Inventory.cs b/dsa/DSALib/Models/Database/Dsa/Inventory.cs
new file mode 100644
index 0000000..f3f5d7a
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/Inventory.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class Inventory
+ {
+ public int Id { get; set; }
+ public Dictionary<string, bool> Items { get; set; } = new Dictionary<string, bool>();
+ public Dictionary<string, bool> Food { get; set; } = new Dictionary<string, bool>();
+ public List<Weapon> Weapons { get; set; } = new List<Weapon>();
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/Talent.cs b/dsa/DSALib/Models/Database/Dsa/Talent.cs
new file mode 100644
index 0000000..214aecc
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/Talent.cs
@@ -0,0 +1,24 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class Talent : DSALib.Models.Database.DataObject
+ {
+ public Talent()
+ {
+ }
+
+ public Talent(string name)
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ }
+
+ public Talent(string name, string roll)
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ Roll = roll.Split('/');
+ }
+
+ public string[] Roll { get; set; } = new string[3];
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/Weapon.cs b/dsa/DSALib/Models/Database/Dsa/Weapon.cs
new file mode 100644
index 0000000..308c6c5
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/Weapon.cs
@@ -0,0 +1,52 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class Weapon
+ {
+ public Weapon()
+ {
+ }
+
+ public Weapon(string name, string damage, int weight, string weaponTalent, string price)
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ Damage = damage ?? throw new ArgumentNullException(nameof(damage));
+ Weight = weight;
+ WeaponTalent = weaponTalent ?? throw new ArgumentNullException(nameof(weaponTalent));
+ Price = price;
+ }
+
+ public string Name { get; set; }
+ public string Damage { get; set; }
+ public int Weight { get; set; }
+ public string WeaponTalent { get; set; }
+ public string Price { get; set; }
+ }
+
+ public class MeleeWeapon : Weapon
+ {
+ public MeleeWeapon(string name, string damage, int weight, string weaponTalent, string price) : base(name,
+ damage, weight, weaponTalent, price)
+ {
+ }
+
+ public string TpKK { get; set; }
+ public int INI { get; set; }
+ public string MW { get; set; }
+ }
+
+ public class RangedWeapon : Weapon
+ {
+ public RangedWeapon(string name, string damage, int weight, string weaponTalent, string price) : base(name,
+ damage, weight, weaponTalent, price)
+ {
+ }
+
+ public int AtMod { get; set; }
+ public int KKMod { get; set; }
+ public string AtReach { get; set; }
+ public string TpReach { get; set; }
+ public int LoadTime { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Dsa/WeaponTalent.cs b/dsa/DSALib/Models/Database/Dsa/WeaponTalent.cs
new file mode 100644
index 0000000..2ab921b
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Dsa/WeaponTalent.cs
@@ -0,0 +1,18 @@
+using System;
+
+namespace DSALib.Models.Database.Dsa
+{
+ public class WeaponTalent
+ {
+ public WeaponTalent(string name, int at, int pa)
+ {
+ Name = name ?? throw new ArgumentNullException(nameof(name));
+ At = at;
+ Pa = pa;
+ }
+
+ public string Name { get; set; }
+ public int At { get; set; }
+ public int Pa { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Groups/DSAGroup.cs b/dsa/DSALib/Models/Database/Groups/DSAGroup.cs
new file mode 100644
index 0000000..adbd0ac
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Groups/DSAGroup.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+using DSALib.Models.Database.Dsa;
+
+namespace DSALib.Models.Database.Groups
+{
+ public class DsaGroup : Group
+ {
+ public List<GroupChar> Chars { get; set; } = new List<GroupChar>();
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/Groups/Group.cs b/dsa/DSALib/Models/Database/Groups/Group.cs
new file mode 100644
index 0000000..096f2be
--- /dev/null
+++ b/dsa/DSALib/Models/Database/Groups/Group.cs
@@ -0,0 +1,9 @@
+namespace DSALib.Models.Database.Groups
+{
+ public class Group
+ {
+ public string Name { get; set; }
+ public string Password { get; set; }
+ public int Id { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Database/IDataObject.cs b/dsa/DSALib/Models/Database/IDataObject.cs
new file mode 100644
index 0000000..bdc88b7
--- /dev/null
+++ b/dsa/DSALib/Models/Database/IDataObject.cs
@@ -0,0 +1,7 @@
+namespace DSALib.Models.Database
+{
+ public interface IDataObject
+ {
+ string Name { get; set; }
+ }
+} \ No newline at end of file