From e6181c24124d97f2fbc932b8a68311e625463156 Mon Sep 17 00:00:00 2001 From: uzvkl Date: Tue, 11 Jun 2019 23:05:52 +0200 Subject: Move dsa related stuff to subfolder --- dsa/DSALib/Commands/LebenUndAstral.cs | 172 ++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 dsa/DSALib/Commands/LebenUndAstral.cs (limited to 'dsa/DSALib/Commands/LebenUndAstral.cs') diff --git a/dsa/DSALib/Commands/LebenUndAstral.cs b/dsa/DSALib/Commands/LebenUndAstral.cs new file mode 100644 index 0000000..ac11c91 --- /dev/null +++ b/dsa/DSALib/Commands/LebenUndAstral.cs @@ -0,0 +1,172 @@ +using System; +using DSALib.Auxiliary; +using DSALib.DSA_Game; +using DSALib.Characters; + +namespace DSALib.Commands +{ + public class LE + { + public static string LEAsync(ulong id, string modifier) + { + //This is the string that will be printed + var 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 + var 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) + { + var 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 + { + var 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) + { + var 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 + { + var 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; + } + } +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf