diff options
author | Kobert-P <kassiaK@yahoo.de> | 2018-06-06 23:41:52 +0200 |
---|---|---|
committer | Kobert-P <kassiaK@yahoo.de> | 2018-06-06 23:41:52 +0200 |
commit | 3868faeccf5036ca774175e1b43123dd967be9cd (patch) | |
tree | 1ee2b3ce53043322889ef996585f7001ed7a5d23 /DiscoBot/Commands/LebenUndAstral.cs | |
parent | 6f03675fcec1cc73bb684cb71e8fd1bef24efbc5 (diff) |
close #1: "Implement !gm LE/!gm AE"
Diffstat (limited to 'DiscoBot/Commands/LebenUndAstral.cs')
-rw-r--r-- | DiscoBot/Commands/LebenUndAstral.cs | 188 |
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```"); } |