summaryrefslogtreecommitdiff
path: root/DiscoBot/Commands
diff options
context:
space:
mode:
authorKobert-P <kassiaK@yahoo.de>2018-06-11 23:39:49 +0200
committerKobert-P <kassiaK@yahoo.de>2018-06-11 23:39:49 +0200
commit1d36610c1f99b671e159228c03224a4b3ebfe140 (patch)
tree2656b40b02e658d9b3b6935a5c2972212a2a1ef6 /DiscoBot/Commands
parent6c0f191e6750161fe25ebe92c8db4da4ddea04f6 (diff)
Trennung von !list in !list und !Held
Diffstat (limited to 'DiscoBot/Commands')
-rw-r--r--DiscoBot/Commands/HeldList.cs184
-rw-r--r--DiscoBot/Commands/List.cs130
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));
}
}
}