diff options
author | Kobert-P <kassiaK@yahoo.de> | 2018-06-11 23:39:49 +0200 |
---|---|---|
committer | Kobert-P <kassiaK@yahoo.de> | 2018-06-11 23:39:49 +0200 |
commit | 1d36610c1f99b671e159228c03224a4b3ebfe140 (patch) | |
tree | 2656b40b02e658d9b3b6935a5c2972212a2a1ef6 /DiscoBot/Commands | |
parent | 6c0f191e6750161fe25ebe92c8db4da4ddea04f6 (diff) |
Trennung von !list in !list und !Held
Diffstat (limited to 'DiscoBot/Commands')
-rw-r--r-- | DiscoBot/Commands/HeldList.cs | 184 | ||||
-rw-r--r-- | DiscoBot/Commands/List.cs | 130 |
2 files changed, 187 insertions, 127 deletions
diff --git a/DiscoBot/Commands/HeldList.cs b/DiscoBot/Commands/HeldList.cs new file mode 100644 index 0000000..a7eb920 --- /dev/null +++ b/DiscoBot/Commands/HeldList.cs @@ -0,0 +1,184 @@ +namespace DiscoBot.Commands +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + + using DiscoBot.Audio; + using DiscoBot.Auxiliary; + using DiscoBot.DSA_Game; + using DiscoBot.DSA_Game.Characters; + + using Discord.Commands; + + public class Held : ModuleBase + { + [Command("held"), Summary("gibt Heldenwerte aus")] + [Alias("Held", "Wert", "Werte", "werte", "char", "Char")] + public async Task ListAsync([Summary("Werte")] params string[] prop_list) + { + var res = new List<string>(); + + var character = ((Character)Dsa.Chars.Find(x => x.Name.Equals(Dsa.Relation[this.Context.User.Username]))); + + int first_column_width = 18; + + int persist = 0; + + if (prop_list.Length == 0 || prop_list[0].ToLower().StartsWith("all") || prop_list[0].ToLower().StartsWith("brief") || prop_list[0].ToLower().StartsWith("zettel")) + { + persist = 1; + + res.Add(character.Name + ":\n"); + //Eigenschaften + res.AddRange( + character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); + res.Add(""); + //LE/AE + res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); + if (character.Astralpunkte_Basis > 0) + { + res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); + } + res.Add(""); + //Kampfwerte + res.Add("".AddSpaces(first_column_width) + " AT/PA"); + res.AddRange( + character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); + res.Add(""); + //Vorteile + res.AddRange( + character.Vorteile + .Select(s => s.Name + "\t " + s.Value)); + res.Add(""); + //Talente + res.AddRange( + character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + res.Add(""); + //evtl Zauber + if (character.Zauber.Count > 0) + { + res.AddRange( + character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + } + + } + else if (prop_list[0].ToLower().StartsWith("man") || prop_list[0].ToLower().StartsWith("help") || prop_list[0].ToLower().StartsWith("hilf")) + { + await this.ReplyAsync("```xl\n" + Help.Get_Specific_Help("Held") + "\n```"); + return; + } + else + { + + res.Add(character.Name + ":\n"); + + foreach (string prop in prop_list) + { + + switch (prop.ToLower()) + { + case "e": + case "eig": + case "eigenschaft": + case "eigenschaften": + res.AddRange( + character.Eigenschaften.Take(8).Select(s => s.Key + ":\t " + s.Value)); + break; + case "stat": + case "stats": + res.AddRange( + character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); + res.Add(""); + res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); + if (character.Astralpunkte_Basis > 0) + { + res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); + } + break; + case "le": + res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); + break; + case "ae": + res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); + break; + case "t": + case "ta": + case "talent": + case "talente": + res.AddRange( + character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + break; + case "zauber": + case "z": + res.AddRange( + character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); + break; + case "w": + case "waffe": + case "waffen": + case "kampf": + case "kampfwert": + case "kampfwerte": + res.Add("".AddSpaces(first_column_width) + " AT/PA"); + res.AddRange( + character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); + break; + case "fern": + res.AddRange( + character.Talente.Select(s => s.Name)); + break; + case "v": + case "vt": + case "vor": + case "vorteil": + case "vorteile": + case "nachteil": + case "nachteile": + res.AddRange( + character.Vorteile + .Select(s => s.Name + "\t " + s.Value)); + break; + + default: + res.Add($"Kommando {prop} nicht gefunden"); + break; + } + + res.Add(""); + } + + } + + + //var sb = new StringBuilder(); + //foreach (string re in res) + //{ + // if (sb.Length + re.Length > 1798) + // { + // if (persist == 1) + // { + // await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```"); + // } + // else + // { + // await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + // } + // sb.Clear(); + //} + + //sb.AppendLine(re); + //} + if (persist == 1) + { + await this.ReplyAsync(res); + } + else + { + await this.ReplyAsync(res, TimeSpan.FromSeconds(90)); + } + } + } +} diff --git a/DiscoBot/Commands/List.cs b/DiscoBot/Commands/List.cs index e87c675..a251183 100644 --- a/DiscoBot/Commands/List.cs +++ b/DiscoBot/Commands/List.cs @@ -19,11 +19,7 @@ public async Task ListAsync([Summary("Aktion")] string prop) { var res = new List<string>(); - - var character = ((Character)Dsa.Chars.Find(x => x.Name.Equals(Dsa.Relation[this.Context.User.Username]))); - - int first_column_width = 18; - + int persist = 0; switch (prop.ToLower()) @@ -33,46 +29,6 @@ await this.ReplyAsync("```xl\n" + Help.Get_Specific_Help("List") + "\n```"); return; // break; - case "all": - case "held": - case "char": - case "brief": - case "zettel": - persist = 1; - - res.Add(character.Name + ":\n"); - //Eigenschaften - res.AddRange( - character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); - res.Add(""); - //LE/AE - res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); - if (character.Astralpunkte_Basis > 0) - { - res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); - } - res.Add(""); - //Kampfwerte - res.Add("".AddSpaces(first_column_width) + " AT/PA"); - res.AddRange( - character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); - res.Add(""); - //Vorteile - res.AddRange( - character.Vorteile - .Select(s => s.Name + "\t " + s.Value)); - res.Add(""); - //Talente - res.AddRange( - character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); - res.Add(""); - //evtl Zauber - if (character.Zauber.Count > 0) - { - res.AddRange( - character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); - } - break; case "chars": res.AddRange(Dsa.Chars.Select(x => x.Name)); break; @@ -80,106 +36,26 @@ // res.AddRange(Help.Commands.Select(x => x.Name)); res.Add(Help.Get_Generic_Help()); break; - case "e": - case "eig": - case "eigenschaft": - case "eigenschaften": - res.Add(character.Name + ":\n"); - res.AddRange( - character.Eigenschaften.Take(8).Select(s => s.Key + ":\t " + s.Value)); - break; - case "stat": - case "stats": - res.Add(character.Name + ":\n"); - res.AddRange( - //character.Eigenschaften.Select(s => s.Key + ":\t " + s.Value)); - character.Eigenschaften.Take(9).Select(s => s.Key + ":\t " + s.Value)); - res.Add(""); - res.Add("LE:\t " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); - if (character.Astralpunkte_Basis > 0) - { - res.Add("AE:\t " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); - } - break; - case "t": - case "ta": - case "talent": - case "talente": - res.Add(character.Name + ":\n"); - res.AddRange( - character.Talente.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); - break; - case "zauber": - case "z": - res.Add(character.Name + ":\n"); - res.AddRange( - character.Zauber.Select(s => (s.Name.AddSpaces(first_column_width) + " " + s.Value).AddSpaces(first_column_width + 5) + " " + s.Probe)); - break; - case "w": - case "waffe": - case "waffen": - case "kampf": - case "kampfwert": - case "kampfwerte": - res.Add(character.Name + ":"); - res.Add("".AddSpaces(first_column_width) + " AT/PA"); - res.AddRange( - character.Kampftalente.Select(s => s.Name.AddSpaces(first_column_width) + " " + s.At.ToString().AddSpacesAtHead(2) + "/" + s.Pa.ToString().AddSpacesAtHead(2))); - break; - case "fern": - res.Add(character.Name + ":\n"); - res.AddRange( - character.Talente.Select(s => s.Name)); - break; case "play": case "sound": case "sounds": res.AddRange( Enum.GetNames(typeof(Sound))); break; - case "v": - case "vt": - case "vor": - case "vorteil": - case "vorteile": - case "nachteil": - case "nachteile": - res.Add(character.Name + ":\n"); - res.AddRange( - character.Vorteile - .Select(s => s.Name + "\t " + s.Value));// (s.Value == 0 ? string.Empty : s.Value.ToString()))); - break; default: res.Add($"Kommando {prop} nicht gefunden"); break; } - var sb = new StringBuilder(); - foreach (string re in res) - { - if (sb.Length + re.Length > 1798) - { - if (persist == 1) - { - await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```"); - } - else - { - await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); - } - sb.Clear(); - } - sb.AppendLine(re); - } if (persist == 1) { - await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```"); + await this.ReplyAsync(res); } else { - await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + await this.ReplyAsync(res, TimeSpan.FromSeconds(90)); } } } |