diff options
Diffstat (limited to 'DSACore/Commands/LebenUndAstral.cs')
-rw-r--r-- | DSACore/Commands/LebenUndAstral.cs | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/DSACore/Commands/LebenUndAstral.cs b/DSACore/Commands/LebenUndAstral.cs new file mode 100644 index 0000000..b5bc260 --- /dev/null +++ b/DSACore/Commands/LebenUndAstral.cs @@ -0,0 +1,168 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using DSACore.DSA_Game; +using DSACore.Auxiliary; +using DSALib.Characters; + +namespace DSACore.Commands +{ + public class LE + { + public static string LEAsync(ulong id, string modifier) + { + //This is the string that will be printed + string res = ""; + + + //Get the actual text + res += Dsa.GetCharacter(id).get_LE_Text(modifier); + + + return res; + } + } + + public class AE + { + public static string AEAsync(ulong id, string modifier) + { + //This is the string that will be printed + string res = ""; + + + //Get the actual text + res += Dsa.GetCharacter(id).get_AE_Text(modifier); + + return res; + } + } + + public static class StatExtension + { + public static string get_LE_Text(this ICharacter c, string prop) + { + string res = ""; + var comp = new SpellCorrect(); + var character = c; + + res += (character.Name + ":\n"); + + //If there is actual input we process it + if (prop.Length > 0) + { + res += "LE: "; + res += character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis + " -> "; + + // Apply a change to current value + if (prop.StartsWith("+") || prop.StartsWith("-")) + { + //Allow overflowing the max + if (prop.StartsWith("++")) + { + 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; + //Stop from overflow overflow + if (temp > 0 && prop.StartsWith("+")) + { + character.Lebenspunkte_Aktuell = (character.Lebenspunkte_Basis > character.Lebenspunkte_Aktuell) ? character.Lebenspunkte_Basis : character.Lebenspunkte_Aktuell; + res += " Maximale Lebenspunkte sind erreicht "; + } + //Simply apply change + else + { + character.Lebenspunkte_Aktuell = character.Lebenspunkte_Aktuell + Convert.ToInt32(prop); + } + } + + res += character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis; + } + else + { + // Set to new value regardless of original + character.Lebenspunkte_Aktuell = Convert.ToInt32(prop); + + res += character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis; + } + } + //If no value is passed, the curent value is displayed + else + { + res += ("LE: " + character.Lebenspunkte_Aktuell + "/" + character.Lebenspunkte_Basis); + } + + return res; + } + public static string get_AE_Text(this ICharacter c, string prop) + { + string res = ""; + var comp = new SpellCorrect(); + var character = c; + + res += (character.Name + ":\n"); + + //If there is actual input we process it + if (prop.Length > 0) + { + + res += "AE: "; + res += character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis + " -> "; + + // Apply a change to current value + if (prop.StartsWith("+") || prop.StartsWith("-")) + { + //Allow overflowing the max + if (prop.StartsWith("++")) + { + character.Astralpunkte_Aktuell = character.Astralpunkte_Aktuell + Convert.ToInt32(prop.Substring(1, prop.Length - 1)); + } + else + { + 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) + { + res += "Nicht genügend Astralpunkte! "; + character.Astralpunkte_Aktuell = 0; + } + + 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; + } + } + //If no value is passed, the curent value is displayed + else + { + res += ("AE: " + character.Astralpunkte_Aktuell + "/" + character.Astralpunkte_Basis); + } + + + return res; + } + } +} + + + |