summaryrefslogtreecommitdiff
path: root/dsa/DSALib/Models
diff options
context:
space:
mode:
authorDennis Kobert <d-kobert@web.de>2019-06-11 23:38:13 +0200
committerDennis Kobert <d-kobert@web.de>2019-06-11 23:38:13 +0200
commit2fa4a0e50ebfc97059c8b84dbd17e79f9afc8a8d (patch)
treec3b34ccb2737e347a73768536895cbbaab13cc01 /dsa/DSALib/Models
parentec991104f56e90d7bb2878da2fe6ed4e585dfc46 (diff)
parentaf74efccf8d21e6151022b71f3cacd3fa83024ee (diff)
Merge branch 'rework-backend'
Diffstat (limited to 'dsa/DSALib/Models')
-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
-rw-r--r--dsa/DSALib/Models/Dsa/CritterAttack.cs19
-rw-r--r--dsa/DSALib/Models/Dsa/KampfTalent.cs16
-rw-r--r--dsa/DSALib/Models/Dsa/Talent.cs43
-rw-r--r--dsa/DSALib/Models/Dsa/Vorteil.cs16
-rw-r--r--dsa/DSALib/Models/Dsa/Zauber.cs16
-rw-r--r--dsa/DSALib/Models/Network/Command.cs18
-rw-r--r--dsa/DSALib/Models/Network/CommandResponse.cs28
21 files changed, 445 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
diff --git a/dsa/DSALib/Models/Dsa/CritterAttack.cs b/dsa/DSALib/Models/Dsa/CritterAttack.cs
new file mode 100644
index 0000000..8cd8b09
--- /dev/null
+++ b/dsa/DSALib/Models/Dsa/CritterAttack.cs
@@ -0,0 +1,19 @@
+namespace DSALib.Models.Dsa
+{
+ public class CritterAttack : Database.DataObject
+ {
+ public CritterAttack(string name, int at, string tp, string comment = "")
+ {
+ Name = name;
+ At = at;
+ Tp = tp;
+ Comment = comment;
+ }
+
+ public int At { get; set; }
+
+ public string Tp { get; set; }
+
+ public string Comment { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Dsa/KampfTalent.cs b/dsa/DSALib/Models/Dsa/KampfTalent.cs
new file mode 100644
index 0000000..51ad255
--- /dev/null
+++ b/dsa/DSALib/Models/Dsa/KampfTalent.cs
@@ -0,0 +1,16 @@
+namespace DSALib.Models.Dsa
+{
+ public class KampfTalent : Database.DataObject
+ {
+ public KampfTalent(string name, int at, int pa)
+ {
+ Name = name;
+ At = at;
+ Pa = pa;
+ }
+
+ public int At { get; set; }
+
+ public int Pa { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Dsa/Talent.cs b/dsa/DSALib/Models/Dsa/Talent.cs
new file mode 100644
index 0000000..5771a74
--- /dev/null
+++ b/dsa/DSALib/Models/Dsa/Talent.cs
@@ -0,0 +1,43 @@
+namespace DSALib.Models.Dsa
+{
+ public class Talent : Database.DataObject // talent objekt
+ {
+ public Talent(string name, string probe, int value)
+ {
+ Name = name;
+ Probe = probe;
+ Value = value;
+ }
+
+ public string Probe { get; set; }
+
+ public int Value { get; set; }
+
+ public string[] GetEigenschaften() // turn XX/XX/XX into string[]{XX,XX,XX}
+ {
+ var temp = Probe.Split('/');
+ for (var index = 0; index < temp.Length; index++) temp[index] = temp[index].Replace("/", string.Empty);
+
+ return temp;
+ }
+
+ public bool IstFernkampftalent()
+ {
+ switch (Name)
+ {
+ case "Armbrust":
+ case "Belagerungswaffen":
+ case "Blasrohr":
+ case "Bogen":
+ case "Diskus":
+ case "Schleuder":
+ case "Wurfbeile":
+ case "Wurfmesser":
+ case "Wurfspeere":
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Dsa/Vorteil.cs b/dsa/DSALib/Models/Dsa/Vorteil.cs
new file mode 100644
index 0000000..e37af20
--- /dev/null
+++ b/dsa/DSALib/Models/Dsa/Vorteil.cs
@@ -0,0 +1,16 @@
+namespace DSALib.Models.Dsa
+{
+ public class Vorteil : Database.DataObject // talent objekt
+ {
+ public Vorteil(string name, string value = "")
+ {
+ Name = name;
+ Value = value;
+ // this.Choice = choice;
+ }
+
+ public string Value { get; set; }
+
+ //public string Choice { get; set; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Dsa/Zauber.cs b/dsa/DSALib/Models/Dsa/Zauber.cs
new file mode 100644
index 0000000..e4387bf
--- /dev/null
+++ b/dsa/DSALib/Models/Dsa/Zauber.cs
@@ -0,0 +1,16 @@
+namespace DSALib.Models.Dsa
+{
+ public class Zauber : Talent
+ {
+ public Zauber(string name, string probe, int value, char complexity = 'A', string representation = "Magier")
+ : base(name, probe, value)
+ {
+ Complexity = complexity;
+ Representation = Representation;
+ }
+
+ public char Complexity { get; }
+
+ public string Representation { get; }
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Network/Command.cs b/dsa/DSALib/Models/Network/Command.cs
new file mode 100644
index 0000000..5a97e88
--- /dev/null
+++ b/dsa/DSALib/Models/Network/Command.cs
@@ -0,0 +1,18 @@
+using System.Collections.Generic;
+using System.Linq;
+
+namespace DSALib.Models.Network
+{
+ public class Command
+ {
+ public ulong GroupId { get; set; } = 0;
+ public ulong CharId { get; set; }
+ public string Name { get; set; }
+ public string CmdIdentifier { get; set; }
+ public List<string> CmdTexts { get; set; }
+ public string CmdText => CmdTexts.Count != 0 ? CmdTexts.First() : "";
+
+ public int Cmdmodifier => CmdTexts.Count != 0 && int.TryParse(CmdTexts.Last(), out var mod) ? mod : 0;
+ public bool IsDm { get; set; } = false;
+ }
+} \ No newline at end of file
diff --git a/dsa/DSALib/Models/Network/CommandResponse.cs b/dsa/DSALib/Models/Network/CommandResponse.cs
new file mode 100644
index 0000000..0816e4a
--- /dev/null
+++ b/dsa/DSALib/Models/Network/CommandResponse.cs
@@ -0,0 +1,28 @@
+using System;
+
+namespace DSALib.Models.Network
+{
+ public class CommandResponse
+ {
+ public CommandResponse(string message, ResponseType responseType = ResponseType.Broadcast)
+ {
+ this.message = message ?? throw new ArgumentNullException(nameof(message));
+ ResponseType = responseType;
+ }
+
+ public string message { get; }
+ public ResponseType ResponseType { get; }
+
+ public override string ToString()
+ {
+ return message;
+ }
+ }
+
+ public enum ResponseType
+ {
+ Broadcast,
+ Caller,
+ Error
+ }
+} \ No newline at end of file