From eb7a842b8fe784891a8f865cf47cc20e4fcb22b0 Mon Sep 17 00:00:00 2001 From: TrueDoctor Date: Tue, 22 Aug 2017 19:44:55 +0200 Subject: implemented charackter class implemented xml readout --- DiscoBot/Char.cs | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 DiscoBot/Char.cs (limited to 'DiscoBot/Char.cs') diff --git a/DiscoBot/Char.cs b/DiscoBot/Char.cs new file mode 100644 index 0000000..250810d --- /dev/null +++ b/DiscoBot/Char.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; + +namespace DiscoBot +{ + public class Char + { + + string name; + public Dictionary eigenschaften = new Dictionary(); + public List talente = new List(); + public List kampftalente = new List(); + + public Dictionary Proptable = new Dictionary(); + + + public Char(String path = "Felis.xml") + { + + Load(path); + } + + private void Load(string path) + { + XmlTextReader reader = new XmlTextReader(path); + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + switch (reader.Name) + { + case "held": + name = reader.GetAttribute("name"); + break; + case "eigenschaft": + eigenschaften.Add(reader.GetAttribute("name"), Convert.ToInt32(reader.GetAttribute("value")) + Convert.ToInt32(reader.GetAttribute("mod"))); + break; + case "talentliste": + reader.Read(); + while (reader.Name.Equals("talent")) + { + talente.Add(new Talent(reader.GetAttribute("name"), reader.GetAttribute("probe").Remove(0, 2).Trim(')'), Convert.ToInt32(reader.GetAttribute("value")))); + reader.Read(); + } + break; + case "kampfwerte": + string atname = reader.GetAttribute("name"); + reader.Read(); + int at = Convert.ToInt32(reader.GetAttribute("value")); + reader.Read(); + int pa = Convert.ToInt32(reader.GetAttribute("value")); + kampftalente.Add(new Kampf(atname, at, pa)); + break; + } + + + + } + Proptable.Add("MU", "Mut"); + Proptable.Add("KL", "Klugheit"); + Proptable.Add("IN", "Intuition"); + Proptable.Add("CH", "Charisma"); + Proptable.Add("FF", "Fingerfertigkeit"); + Proptable.Add("GE", "Gewandheit"); + Proptable.Add("KO", "Konstitution"); + Proptable.Add("KK", "Körperkraft"); + + } + string TestTalent(string talent) + { + var props =talente.Find(v => v.name.Equals(talent)).Test(); + + return ""; + } + + } + public class Talent + { + public string name, probe; + private int value; + public Talent(string name, string probe, int value) { this.name = name; this.probe = probe; this.value = value; } + public string[] Test() + { + var temp = probe.Split('/'); + foreach (string s in temp) + s.Replace("/", ""); + return temp; + } + + } + public class Kampf + { + string name; + private int at, pa; + public Kampf(string name, int at, int pa) { this.name = name; this.at = at; this.pa = pa; } + void Test() { } + } + public static class dice + { + public static int Rolld20() + { + System.Random rnd = new System.Random(); + return rnd.Next(19) + 1; + } + } +} -- cgit v1.2.3-70-g09d2 From d59a67e552628b464f079bccae20349d649bdd61 Mon Sep 17 00:00:00 2001 From: TrueDoctor Date: Tue, 22 Aug 2017 20:58:49 +0200 Subject: added syntax highlighting --- DiscoBot/Char.cs | 27 +++++++++++++++++++-------- DiscoBot/Commands.cs | 7 ++----- 2 files changed, 21 insertions(+), 13 deletions(-) (limited to 'DiscoBot/Char.cs') diff --git a/DiscoBot/Char.cs b/DiscoBot/Char.cs index 250810d..28ed7b9 100644 --- a/DiscoBot/Char.cs +++ b/DiscoBot/Char.cs @@ -64,23 +64,34 @@ namespace DiscoBot Proptable.Add("IN", "Intuition"); Proptable.Add("CH", "Charisma"); Proptable.Add("FF", "Fingerfertigkeit"); - Proptable.Add("GE", "Gewandheit"); + Proptable.Add("GE", "Gewandtheit"); Proptable.Add("KO", "Konstitution"); Proptable.Add("KK", "Körperkraft"); } - string TestTalent(string talent) + public string TestTalent(string talent) { - var props =talente.Find(v => v.name.Equals(talent)).Test(); - - return ""; + var output = new StringBuilder(); + var ttalent = talente.Find(v => v.name.Equals(talent)); + var props =ttalent.Test(); + int tap = ttalent.value; + for (int i = 0; i <= 2; i++) + { + int temp = dice.Rolld20(); + int eigenschaft = eigenschaften[Proptable[props[i]]]; + if (eigenschaft < temp) + tap -= temp - eigenschaft ; + output.Append(temp+" "); + } + output.Append("tap: "+ tap); + return output.ToString(); } } public class Talent { public string name, probe; - private int value; + public int value; public Talent(string name, string probe, int value) { this.name = name; this.probe = probe; this.value = value; } public string[] Test() { @@ -100,10 +111,10 @@ namespace DiscoBot } public static class dice { + static System.Random rnd = new System.Random(); public static int Rolld20() { - System.Random rnd = new System.Random(); - return rnd.Next(19) + 1; + return rnd.Next(1,21) ; } } } diff --git a/DiscoBot/Commands.cs b/DiscoBot/Commands.cs index 9fe9513..6984761 100644 --- a/DiscoBot/Commands.cs +++ b/DiscoBot/Commands.cs @@ -29,17 +29,14 @@ namespace DiscoBot public class Abfrage : ModuleBase { + Char test = new Char(); // ~say hello -> hello [Command("t"), Summary("tests a talent.")] public async Task Say([Remainder, Summary("The text to echo")] string talent) { - // - //a.talente.First(x=>) - - // ReplyAsync is a method on ModuleBase - await ReplyAsync(talent); + await ReplyAsync("```xl\n" + test.TestTalent(talent) + "\n```"); } } -- cgit v1.2.3-70-g09d2