summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKobert-P <kassiaK@yahoo.de>2018-06-11 16:49:40 +0200
committerKobert-P <kassiaK@yahoo.de>2018-06-11 16:49:40 +0200
commitff80592d541c79653ef0a7c04e0938d7249069ef (patch)
tree82c4aea97c2ab2e00b35d84b3e1a065608f4ac67
parent19fd05a2990ec309a3869d61a6bcf48aba4793dd (diff)
Neu: !list held + !list waffe Verbesserung
-rw-r--r--DiscoBot/Auxiliary/Extensions.cs15
-rw-r--r--DiscoBot/Commands/List.cs76
2 files changed, 81 insertions, 10 deletions
diff --git a/DiscoBot/Auxiliary/Extensions.cs b/DiscoBot/Auxiliary/Extensions.cs
index 2176129..a1d58fa 100644
--- a/DiscoBot/Auxiliary/Extensions.cs
+++ b/DiscoBot/Auxiliary/Extensions.cs
@@ -13,5 +13,20 @@
}
return temp;
}
+
+
+
+ //This mehod extends string.
+ //It adds spaces at the HEAD of a string until a fixed length is reached.
+ //If the original string is already longer, it is returner unmodified.
+ public static string AddSpacesAtHead(this string str, int length)
+ {
+ string temp = "";
+ for (int i = str.Length; i < length; i++)
+ {
+ temp += " ";
+ }
+ return temp + str;
+ }
}
}
diff --git a/DiscoBot/Commands/List.cs b/DiscoBot/Commands/List.cs
index 5b7b8b4..be7441b 100644
--- a/DiscoBot/Commands/List.cs
+++ b/DiscoBot/Commands/List.cs
@@ -24,8 +24,50 @@
int first_column_width = 18;
+ int persist = 0;
+
switch (prop.ToLower())
{
+ 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":
case "Chars":
res.AddRange(Dsa.Chars.Select(x => x.Name));
@@ -37,13 +79,13 @@
case "eig":
case "eigenschaft":
case "eigenschaften":
- res.Add(character.Name + ":");
+ 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 + ":");
+ 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));
@@ -56,13 +98,13 @@
case "t":
case "ta":
case "talent":
- res.Add(character.Name + ":");
+ 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 + ":");
+ 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;
@@ -70,11 +112,12 @@
case "waffe":
case "waffen":
res.Add(character.Name + ":");
+ res.Add("".AddSpaces(first_column_width) + " AT/PA");
res.AddRange(
- character.Kampftalente.Select(s => s.Name));
+ 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 + ":");
+ res.Add(character.Name + ":\n");
res.AddRange(
character.Talente.Select(s => s.Name));
break;
@@ -87,7 +130,7 @@
case "vt":
case "vor":
case "vorteil":
- res.Add(character.Name + ":");
+ res.Add(character.Name + ":\n");
res.AddRange(
character.Vorteile
.Select(s => s.Name + "\t " + s.Value));// (s.Value == 0 ? string.Empty : s.Value.ToString())));
@@ -103,14 +146,27 @@
{
if (sb.Length + re.Length > 1798)
{
- await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90));
+ 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);
}
-
- await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90));
+ if (persist == 1)
+ {
+ await this.ReplyAsync("```xl\n" + sb.ToString() + "\n```");
+ }
+ else
+ {
+ await this.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90));
+ }
}
}
}