From b411aa2128c2724bec0ecedb8cb4e1ffa59f3b53 Mon Sep 17 00:00:00 2001 From: TrueDoctor Date: Wed, 26 Sep 2018 20:51:37 +0200 Subject: disconnected most vital calles from the Discord Bot --- DSACore/Auxiliary/TalentEnumerableExtension.cs | 84 ++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 DSACore/Auxiliary/TalentEnumerableExtension.cs (limited to 'DSACore/Auxiliary/TalentEnumerableExtension.cs') diff --git a/DSACore/Auxiliary/TalentEnumerableExtension.cs b/DSACore/Auxiliary/TalentEnumerableExtension.cs new file mode 100644 index 0000000..d8af015 --- /dev/null +++ b/DSACore/Auxiliary/TalentEnumerableExtension.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DiscoBot.DSA_Game.Characters; +using DSALib; + +namespace DSACore.Auxiliary +{ + public static class TalentEnumerableExtension + { + public static string ProbenTest(this IEnumerable List, Character c, string talent, int erschwernis = 0) + { + var output = new StringBuilder(); + var sc = new SpellCorrect(); + var tTalent = List.OrderBy(x => sc.Compare(talent, x.Name)).First(); + + if (sc.Compare(talent, tTalent.Name) > SpellCorrect.ErrorThreshold) + { + return $"{c.Name} kann nicht {talent}..."; + } + + var props = tTalent.GetEigenschaften(); // get the required properties + int tap = tTalent.Value; // get taw + var werte = props.Select(p => c.Eigenschaften[c.PropTable[p]]).ToList(); + + output.AppendFormat( + "{0} würfelt: {1} \n{2} - {3} taw:{4} {5} \n", + c.Name, + tTalent.Name, + tTalent.Probe, + string.Join("/", werte), + tTalent.Value, + erschwernis.Equals(0) ? string.Empty : "Erschwernis: " + erschwernis); + + output.Append(" "); + tap -= erschwernis; + int gesamtErschwernis = tap; + if (gesamtErschwernis < 0) + { + tap = 0; + for (int i = 0; i <= 2; i++) + { + // foreach property, dice and tap + int temp = Dice.Roll(); + int eigenschaft = c.Eigenschaften[c.PropTable[props[i]]]; + + if (eigenschaft + gesamtErschwernis < temp) + { + tap -= temp - (eigenschaft + gesamtErschwernis); + } + + output.Append($"[{temp}]"); // add to string + } + + if (tap >= 0) + { + tap = 1; + } + } + else + { + for (int i = 0; i <= 2; i++) + { + // foreach property, dice and tap + int temp = Dice.Roll(); + int eigenschaft = c.Eigenschaften[c.PropTable[props[i]]]; + + if (eigenschaft < temp) + { + tap -= temp - eigenschaft; + } + + output.Append($"[{temp}]"); // add to string + } + } + + tap = (tap == 0) ? 1 : tap; + + output.AppendFormat(" tap: {0,2}", tap); + + return output.ToString(); // return output + } + } +} -- cgit v1.2.3-54-g00ecf