summaryrefslogtreecommitdiff
path: root/DiscoBot/Commands/LebenUndAstral.cs
diff options
context:
space:
mode:
authorKobert-P <kassiaK@yahoo.de>2018-06-06 23:41:52 +0200
committerKobert-P <kassiaK@yahoo.de>2018-06-06 23:41:52 +0200
commit3868faeccf5036ca774175e1b43123dd967be9cd (patch)
tree1ee2b3ce53043322889ef996585f7001ed7a5d23 /DiscoBot/Commands/LebenUndAstral.cs
parent6f03675fcec1cc73bb684cb71e8fd1bef24efbc5 (diff)
close #1: "Implement !gm LE/!gm AE"
Diffstat (limited to 'DiscoBot/Commands/LebenUndAstral.cs')
-rw-r--r--DiscoBot/Commands/LebenUndAstral.cs188
1 files changed, 95 insertions, 93 deletions
diff --git a/DiscoBot/Commands/LebenUndAstral.cs b/DiscoBot/Commands/LebenUndAstral.cs
index 4ead7e9..3796475 100644
--- a/DiscoBot/Commands/LebenUndAstral.cs
+++ b/DiscoBot/Commands/LebenUndAstral.cs
@@ -12,40 +12,12 @@
public class LE : ModuleBase
{
-
-
- [Command("LE"), Summary("Ändert aktuellen Lebenspunktestand")]
- [Alias("le", "leben", "LP", "lp", "Le", "Lp")]
-
- public async Task LEAsync([Summary("LE Modifier")] string prop = "", string s = "")
+ public string get_LE_Text(string name, string prop)
{
- //This is the string that will be printed
- string res ="";
-
- if(prop.ToLower().Equals("help") || prop.ToLower().Equals("man"))
- {
-
- Man man = new Man();
- await this.ReplyAsync("```xl\n" + man.Man_LE() + "\n```");
- return;
-
- //res += "Use !LE to display, set, or change LE value\n\n";
- //res += " !LE Display values\n";
- //res += " !LE 30 Set LE to 30\n";
- //res += " !LE +5 Increment LE by 5 (up to the maximum)\n";
- //res += " !LE ++5 Increment LE by 5 (ignoring the maximum)\n";
- //res += " !LE -5 Decrease LE by 5\n";
-
- //await this.ReplyAsync("```xl\n" + res + "\n```");
-
- //return;
- }
-
- //Incase the input is badly formated
- prop = prop.Trim() + s.Trim();
-
- //Find the corresponding character
- var character = ((Character)Dsa.Chars.Find(x => x.Name.Equals(Dsa.Relation[this.Context.User.Username])));
+ string res = "";
+ var comp = new SpellCorrect();
+ var character = Dsa.Chars.OrderBy(x => comp.Compare(name, x.Name)).First();
+
res += (character.Name + ":\n");
//If there is actual input we process it
@@ -61,11 +33,11 @@
//Allow overflowing the max
if (prop.StartsWith("++"))
{
- character.Lebenspunkte_Aktuell = character.Lebenspunkte_Aktuell + Convert.ToInt32(prop.Substring(1,prop.Length-1));
+ character.Lebenspunkte_Aktuell = character.Lebenspunkte_Aktuell + Convert.ToInt32(prop.Substring(1, prop.Length - 1));
}
else
{
- int temp = character.Lebenspunkte_Aktuell + Convert.ToInt32(prop) - character.Lebenspunkte_Basis;
+ int temp = character.Lebenspunkte_Aktuell + Convert.ToInt32(prop) - character.Lebenspunkte_Basis;
//Stop from overflow overflow
if (temp > 0 && prop.StartsWith("+"))
{
@@ -95,87 +67,89 @@
res += ("LE: " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis);
}
-
- await this.ReplyAsync("```xl\n" + res + "\n```");
+ return res;
}
+ [Command("LE"), Summary("Ändert aktuellen Lebenspunktestand")]
+ [Alias("le", "leben", "LP", "lp", "Le", "Lp")]
- }
+ public async Task LEAsync([Summary("LE Modifier")] string prop = "", string s = "")
+ {
+ //This is the string that will be printed
+ string res ="";
+ if(prop.ToLower().Equals("help") || prop.ToLower().Equals("man"))
+ {
+ Man man = new Man();
+ await this.ReplyAsync("```xl\n" + man.Man_LE() + "\n```");
+ return;
+ }
+ //In case the input is badly formated
+ prop = prop.Trim() + s.Trim();
-public class AE : ModuleBase
-{
+ //Get the actual text
+ res += get_LE_Text(Dsa.Relation[this.Context.User.Username], prop);
+
- [Command("AE"), Summary("Ändert aktuellen Astralpunktestand")]
- [Alias("ae", "astral", "ASP", "Asp", "asp", "Astral")]
+ await this.ReplyAsync("```xl\n" + res + "\n```");
+ }
- public async Task AEAsync([Summary("AE Modifier")] string prop = "", string s = "")
- {
- //This is the string that will be printed
- string res = "";
- if (prop.ToLower().Equals("help") || prop.ToLower().Equals("man"))
- {
- Man man = new Man();
- await this.ReplyAsync("```xl\n" + man.Man_AE() + "\n```");
- return;
+ }
+
- // res += "Use !AE to display, set, or change AE/Asp value\n\n";
- //res += " !AE Display values\n";
- //res += " !AE 30 Set Asp to 30\n";
- //res += " !AE +5 Increment Asp by 5 (up to the maximum)\n";
- //res += " !AE ++5 Increment Asp by 5 (ignoring the maximum)\n";
- //res += " !AE -5 Decrease Asp by 5 (down to 0)\n";
- //await this.ReplyAsync("```xl\n" + res + "\n```");
- //return;
- }
- //Incase the input is badly formated
- prop = prop.Trim() + s.Trim();
- //Find the corresponding character
- var character = ((Character)Dsa.Chars.Find(x => x.Name.Equals(Dsa.Relation[this.Context.User.Username])));
- res += (character.Name + ":\n");
+public class AE : ModuleBase
+{
- //If there is actual input we process it
- if (prop.Length > 0)
+ public string get_AE_Text(string name, string prop)
{
+ string res = "";
+ var comp = new SpellCorrect();
+ var character = Dsa.Chars.OrderBy(x => comp.Compare(name, x.Name)).First();
- res += "AE: ";
- res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis + " -> ";
+ res += (character.Name + ":\n");
- // Apply a change to current value
- if (prop.StartsWith("+") || prop.StartsWith("-"))
+ //If there is actual input we process it
+ if (prop.Length > 0)
{
- //Allow overflowing the max
- if (prop.StartsWith("++"))
- {
- character.Astralpunkte_Aktuell = character.Astralpunkte_Aktuell + Convert.ToInt32(prop.Substring(1, prop.Length - 1));
- }
- else
+
+ res += "AE: ";
+ res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis + " -> ";
+
+ // Apply a change to current value
+ if (prop.StartsWith("+") || prop.StartsWith("-"))
{
- int temp = character.Astralpunkte_Aktuell + Convert.ToInt32(prop) - character.Astralpunkte_Basis;
- //Stop from overflow overflow
- if (temp > 0 && prop.StartsWith("+"))
+ //Allow overflowing the max
+ if (prop.StartsWith("++"))
{
- character.Astralpunkte_Aktuell = (character.Astralpunkte_Basis > character.Astralpunkte_Aktuell) ? character.Astralpunkte_Basis : character.Astralpunkte_Aktuell;
- res += " Maximale Astralpunkte sind erreicht ";
+ character.Astralpunkte_Aktuell = character.Astralpunkte_Aktuell + Convert.ToInt32(prop.Substring(1, prop.Length - 1));
}
- //Simply apply change
else
{
- character.Astralpunkte_Aktuell = character.Astralpunkte_Aktuell + Convert.ToInt32(prop);
+ int temp = character.Astralpunkte_Aktuell + Convert.ToInt32(prop) - character.Astralpunkte_Basis;
+ //Stop from overflow overflow
+ if (temp > 0 && prop.StartsWith("+"))
+ {
+ character.Astralpunkte_Aktuell = (character.Astralpunkte_Basis > character.Astralpunkte_Aktuell) ? character.Astralpunkte_Basis : character.Astralpunkte_Aktuell;
+ res += " Maximale Astralpunkte sind erreicht ";
+ }
+ //Simply apply change
+ else
+ {
+ character.Astralpunkte_Aktuell = character.Astralpunkte_Aktuell + Convert.ToInt32(prop);
+ }
}
- }
if (character.Astralpunkte_Aktuell < 0)
{
@@ -183,23 +157,51 @@ public class AE : ModuleBase
character.Astralpunkte_Aktuell = 0;
}
- res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis;
+ res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis;
+
+ }
+ //Set to new value regardless of original
+ else
+ {
+ character.Astralpunkte_Aktuell = Convert.ToInt32(prop);
+ res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis;
+ }
}
- //Set to new value regardless of original
+ //If no value is passed, the curent value is displayed
else
{
- character.Astralpunkte_Aktuell = Convert.ToInt32(prop);
-
- res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis;
+ res += ("AE: " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis);
}
+
+
+ return res;
}
- //If no value is passed, the curent value is displayed
- else
+ [Command("AE"), Summary("Ändert aktuellen Astralpunktestand")]
+ [Alias("ae", "astral", "ASP", "Asp", "asp", "Astral")]
+
+ public async Task AEAsync([Summary("AE Modifier")] string prop = "", string s = "")
+ {
+ //This is the string that will be printed
+ string res = "";
+
+ if (prop.ToLower().Equals("help") || prop.ToLower().Equals("man"))
{
- res += ("AE: " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis);
+
+ Man man = new Man();
+ await this.ReplyAsync("```xl\n" + man.Man_AE() + "\n```");
+ return;
+
}
+ //Incase the input is badly formated
+ prop = prop.Trim() + s.Trim();
+
+
+ //Get the actual text
+ res += get_AE_Text(Dsa.Relation[this.Context.User.Username], prop);
+
+
await this.ReplyAsync("```xl\n" + res + "\n```");
}