diff options
author | TrueDoctor <d-kobert@web.de> | 2018-07-17 21:18:59 +0200 |
---|---|---|
committer | TrueDoctor <d-kobert@web.de> | 2018-07-17 21:18:59 +0200 |
commit | 497a9eded3b785f7f96732c447943cc8bbad284b (patch) | |
tree | 87e40525b6d5173171597a0c8c288fd8d8e7f610 | |
parent | 496c9c32cb8d0d067e675855289904a22b05d9ac (diff) |
Added object oriented dice resolving
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Calculator/Argument.cs | 38 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Calculator/ISolvable.cs | 10 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Calculator/Operator.cs | 50 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Calculator/Ops.cs | 13 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Calculator/StringSolver.cs | 207 | ||||
-rw-r--r-- | DiscoBot/Auxiliary/Dice.cs | 38 | ||||
-rw-r--r-- | DiscoBot/Commands/MiscCommands.cs | 6 | ||||
-rw-r--r-- | DiscoBot/DSA_Game/Dsa.cs | 1 | ||||
-rw-r--r-- | DiscoBot/DiscoBot.csproj | 5 | ||||
-rw-r--r-- | ZooBOTanica/CritCreate.Designer.cs | 16 | ||||
-rw-r--r-- | ZooBOTanica/CritCreate.resx | 368 |
12 files changed, 654 insertions, 101 deletions
@@ -258,4 +258,5 @@ paket-files/ # Python Tools for Visual Studio (PTVS) __pycache__/ -*.pyc
\ No newline at end of file +*.pyc +/ZooBOTanica/Critters diff --git a/DiscoBot/Auxiliary/Calculator/Argument.cs b/DiscoBot/Auxiliary/Calculator/Argument.cs new file mode 100644 index 0000000..2379bfe --- /dev/null +++ b/DiscoBot/Auxiliary/Calculator/Argument.cs @@ -0,0 +1,38 @@ +namespace DiscoBot.Auxiliary.Calculator +{ + using System; + + /// <summary> + /// Provides an ISolvable class to save numbers. The class handles Argument checking and conversion from string to int. + /// </summary> + public class Argument : ISolvable + { + private readonly int value; + + public Argument(string value) + { + // check whether the value given is an empty string + if (string.IsNullOrEmpty(value)) + { + throw new ArgumentException("Argument kann nicht mit einem leeren string instanziert werden. ", nameof(value)); + } + + if (!int.TryParse(value, out int result)) + { + throw new ArgumentException($"Kann {value} nicht in Integer konvertieren"); + } + + this.value = result; + } + + public int Solve() + { + return this.value; + } + + public override string ToString() + { + return this.value.ToString(); + } + } +}
\ No newline at end of file diff --git a/DiscoBot/Auxiliary/Calculator/ISolvable.cs b/DiscoBot/Auxiliary/Calculator/ISolvable.cs new file mode 100644 index 0000000..a869bdb --- /dev/null +++ b/DiscoBot/Auxiliary/Calculator/ISolvable.cs @@ -0,0 +1,10 @@ +namespace DiscoBot.Auxiliary.Calculator +{ + /// <summary> + /// Object has to be able to return an integer as it's value + /// </summary> + public interface ISolvable + { + int Solve(); + } +} diff --git a/DiscoBot/Auxiliary/Calculator/Operator.cs b/DiscoBot/Auxiliary/Calculator/Operator.cs new file mode 100644 index 0000000..0928ec2 --- /dev/null +++ b/DiscoBot/Auxiliary/Calculator/Operator.cs @@ -0,0 +1,50 @@ +using System; + +namespace DiscoBot.Auxiliary.Calculator +{ + /// <summary> + /// The Operator Class represents a binary operator with tow Arguments and an Operation type + /// </summary> + public class Operator : ISolvable + { + private readonly ISolvable arg1, arg2; + + public Operator(ISolvable arg1, ISolvable arg2, Ops operatorType) + { + this.arg1 = arg1; + this.arg2 = arg2; + this.OperatorType = operatorType; + } + + public Ops OperatorType { get; set; } + + public int Solve() + { + int result; + switch (this.OperatorType) + { + case Ops.Dice: + result = Dice.Roll(this.arg1.Solve(), this.arg2.Solve()); + break; + case Ops.Multiply: + result = this.arg1.Solve() * this.arg2.Solve(); + break; + case Ops.Add: + result = this.arg1.Solve() + this.arg2.Solve(); + break; + case Ops.Subtract: + result = this.arg1.Solve() - this.arg2.Solve(); + break; + default: + throw new ArgumentOutOfRangeException(); + } + + return result; + } + + public override string ToString() + { + return $"({this.arg1} {this.OperatorType} {this.arg2})"; + } + } +} diff --git a/DiscoBot/Auxiliary/Calculator/Ops.cs b/DiscoBot/Auxiliary/Calculator/Ops.cs new file mode 100644 index 0000000..62c1309 --- /dev/null +++ b/DiscoBot/Auxiliary/Calculator/Ops.cs @@ -0,0 +1,13 @@ +namespace DiscoBot.Auxiliary.Calculator +{ + /// <summary> + /// The Different Operations, witch can be performed in execution-order + /// </summary> + public enum Ops + { + Dice, + Multiply, + Subtract, + Add + } +} diff --git a/DiscoBot/Auxiliary/Calculator/StringSolver.cs b/DiscoBot/Auxiliary/Calculator/StringSolver.cs new file mode 100644 index 0000000..30c2134 --- /dev/null +++ b/DiscoBot/Auxiliary/Calculator/StringSolver.cs @@ -0,0 +1,207 @@ +namespace DiscoBot.Auxiliary.Calculator +{ + using System; + using System.Collections.Generic; + using System.Linq; + + /// <summary> + /// The StringSolver divides the calculation string into operations and SubStringSolvers if the string contains parentheses + /// </summary> + public class StringSolver : ISolvable + { + private readonly string input; + private readonly List<object> arguments = new List<object>(); + + public StringSolver(string input) + { + this.input = input; + } + + public override string ToString() + { + return "(0+" + this.input.Replace(" ", string.Empty).ToLower() + ")"; + } + + public int Solve() + { + string workInput = "0+" + this.input.Replace(" ", string.Empty).ToLower(); + workInput = ExpandParentheses(workInput); + + // Create a List of the different parts of the calculation, e.g.:{"0", "+", "(5+6)", "d", "3"}. + this.AtomizeOperations(workInput); + + // traverse the List in order of Operation to Create the binary operation tree . + this.NestOperations(); + + // the List now contains only the top operation node, witch can be solved recursively, + return ((ISolvable)this.arguments.First()).Solve(); + } + + private static string GetInner(ref string input) // extract the inner bracket an remove the section from the input string + { + int depth = 0; + for (var index = 1; index < input.Length; index++) + { + char c = input[index]; + switch (c) + { + case '(': + depth++; + break; + case ')': + if (depth == 0) + { + var split = input.Substring(1, index - 1); + input = input.Substring(index + 1); + return split.Equals(string.Empty) ? "0" : split; + } + else + { + depth--; + } + + break; + } + } + + return string.Empty; + } + + private static Ops GetOps(char c) + { + switch (c) + { + case 'd': + case 'w': + return Ops.Dice; + case '+': + return Ops.Add; + case '-': + return Ops.Subtract; + case '*': + return Ops.Multiply; + default: + return Ops.Multiply; + } + } + + private static string ExpandParentheses(string input) // insert * between Parentheses and digits + { + for (int i = 0; i < input.Length - 1; i++) + { + if (input[i + 1] == '(' && char.IsNumber(input[i])) + { + input = input.Insert(i + 1, "*"); + } + } + + for (int i = 1; i < input.Length; i++) + { + if (input[i - 1] == ')' && char.IsNumber(input[i])) + { + input = input.Insert(i, "*"); + } + } + + return input; + } + + private void AtomizeOperations(string workInput) + { + for (var index = 0; index < workInput.Length; index++) + { + char c = workInput[index]; + + if (char.IsNumber(c)) + { + // if char number, check if at end of string, else continue looping + if (index == workInput.Length - 1) + { + // if at end of string; add remaining number to arguments + this.arguments.Add(new Argument(workInput.Substring(0, index + 1))); + } + + continue; + } + + switch (c) + { + case ')': + throw new ArgumentException($"Unmögliche Anordnung von Klammern"); + case '(': + this.arguments.Add(new StringSolver(GetInner(ref workInput))); + index = -1; + break; + default: + if (index > 0) + { + this.arguments.Add(new Argument(workInput.Substring(0, index))); + } + + this.arguments.Add(GetOps(c)); + workInput = workInput.Remove(0, index + 1); + index = -1; + break; + } + } + } + + private void NestOperations() + { + foreach (Ops currentOp in Enum.GetValues(typeof(Ops))) + { + // cycle through operators in operational order + for (var index = 0; index < this.arguments.Count; index++) + { + var arg = this.arguments[index]; + + if (arg.GetType() != typeof(Ops)) + { + continue; + } + + // arg is of type Ops + var op = (Ops)arg; + + if (op != currentOp) + { + continue; + } + + // arg describes the current operation + this.HandleSpecialFormatting(ref index, op); // Deal with special needs... + + // replace the previous current and next Element in the List with one Operation object + var temp = new Operator((ISolvable)this.arguments[index - 1], (ISolvable)this.arguments[index + 1], op); + this.arguments[index - 1] = temp; + this.arguments.RemoveRange(index, 2); + index--; + } + } + } + + private void HandleSpecialFormatting(ref int index, Ops op) + { + var arg1 = this.arguments[index - 1]; + if (arg1.GetType() == typeof(Ops)) + { + if (op == Ops.Dice) + { + this.arguments.Insert(index++, new Argument("1")); // w6 -> 1w6 + } + + if (op == Ops.Subtract) + { + this.arguments.Insert(index++, new Argument("0")); // +-3 -> +0-3 + } + } + + var arg2 = this.arguments[index + 1]; // 3+-5 -> 3+(0-5) + if (arg2.GetType() == typeof(Ops)) + { + this.arguments[index + 1] = new Operator(new Argument("0"), (ISolvable)this.arguments[index + 2], (Ops)arg2); + this.arguments.RemoveAt(index + 2); + } + } + } +}
\ No newline at end of file diff --git a/DiscoBot/Auxiliary/Dice.cs b/DiscoBot/Auxiliary/Dice.cs index 16a8a77..0cd9656 100644 --- a/DiscoBot/Auxiliary/Dice.cs +++ b/DiscoBot/Auxiliary/Dice.cs @@ -1,5 +1,10 @@ namespace DiscoBot.Auxiliary { + using System; + using System.Linq; + + using Discord.Commands; + public static class Dice // roll it! { private static readonly System.Random Rnd = new System.Random(); @@ -8,5 +13,38 @@ { return Rnd.Next(d) + 1; } + + public static int Roll(string input) + { + var strings = input.ToLower().Split(new[] { 'w', 'd' }, 2, StringSplitOptions.RemoveEmptyEntries).ToList(); + int count = Convert.ToInt32(strings[0]); + int d = Convert.ToInt32(strings[0]); + + if (strings.Count != 2) + { + throw new ArgumentException($"{input}: erfüllt nicht die Formatvogaben( Anzahl d Augenzahl)"); + } + + return Roll(count, d); + } + + public static int Roll(int count, int d) + { + if (d <= 0) + { + return 0; + } + + int sum = 0; + for (int i = 0; i < Math.Abs(count); i++) + { + var roll = Dice.Roll(d); + sum += roll; + } + + sum *= Math.Abs(count) / count; + + return sum; + } } } diff --git a/DiscoBot/Commands/MiscCommands.cs b/DiscoBot/Commands/MiscCommands.cs index aa3ea1b..4a91081 100644 --- a/DiscoBot/Commands/MiscCommands.cs +++ b/DiscoBot/Commands/MiscCommands.cs @@ -37,6 +37,12 @@ namespace DiscoBot.Commands return this.ReplyAsync("```xl\n" + RandomMisc.Roll(roll) + "\n```"); } + [Command("rd"), Summary("Würfel Dennis ")] + public Task RollDennisAsync([Remainder, Summary("Weapon")] string roll) + { + return this.ReplyAsync("```xl\n" + new Auxiliary.Calculator.StringSolver(roll).Solve() + "\n```"); + } + [Command("general"), Summary("Set General ")] public Task SetGeneralAsync([Remainder, Summary("Set General")] int i = 0) { diff --git a/DiscoBot/DSA_Game/Dsa.cs b/DiscoBot/DSA_Game/Dsa.cs index 09e874d..139ad91 100644 --- a/DiscoBot/DSA_Game/Dsa.cs +++ b/DiscoBot/DSA_Game/Dsa.cs @@ -44,6 +44,7 @@ public static void Startup() { + //new DiscoBot.Auxiliary.Calculator.StringSolver("1d100 - (1d200 + 1) * -50000").Solve(); /*Session = new Session();*/ // relation.Add("Papo", "Pump aus der Gosse"); foreach (var filename in Directory.GetFiles("helden", "*.xml")) diff --git a/DiscoBot/DiscoBot.csproj b/DiscoBot/DiscoBot.csproj index 4560755..7049b03 100644 --- a/DiscoBot/DiscoBot.csproj +++ b/DiscoBot/DiscoBot.csproj @@ -97,6 +97,11 @@ <Compile Include="Audio\AudioModule.cs" /> <Compile Include="Audio\AudioService.cs" /> <Compile Include="Audio\Sound.cs" /> + <Compile Include="Auxiliary\Calculator\Argument.cs" /> + <Compile Include="Auxiliary\Calculator\ISolvable.cs" /> + <Compile Include="Auxiliary\Calculator\Operator.cs" /> + <Compile Include="Auxiliary\Calculator\Ops.cs" /> + <Compile Include="Auxiliary\Calculator\StringSolver.cs" /> <Compile Include="Auxiliary\CommandInfo.cs" /> <Compile Include="Auxiliary\Extensions.cs" /> <Compile Include="DSA_Game\Characters\Character.cs" /> diff --git a/ZooBOTanica/CritCreate.Designer.cs b/ZooBOTanica/CritCreate.Designer.cs index 93e1599..d64aaa3 100644 --- a/ZooBOTanica/CritCreate.Designer.cs +++ b/ZooBOTanica/CritCreate.Designer.cs @@ -99,6 +99,11 @@ // LeEdit // resources.ApplyResources(this.LeEdit, "LeEdit"); + this.LeEdit.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); this.LeEdit.Name = "LeEdit"; this.LeEdit.Value = new decimal(new int[] { 30, @@ -174,6 +179,11 @@ // resources.ApplyResources(this.PaEdit, "PaEdit"); this.PaEdit.Name = "PaEdit"; + this.PaEdit.Value = new decimal(new int[] { + 6, + 0, + 0, + 0}); // // PaLabel // @@ -188,6 +198,11 @@ // MREdit // resources.ApplyResources(this.MREdit, "MREdit"); + this.MREdit.Minimum = new decimal(new int[] { + 100, + 0, + 0, + -2147483648}); this.MREdit.Name = "MREdit"; this.MREdit.Value = new decimal(new int[] { 5, @@ -322,6 +337,7 @@ // resources.ApplyResources(this.LoadButton, "LoadButton"); this.LoadButton.Name = "LoadButton"; + this.LoadButton.TabStop = false; this.LoadButton.UseVisualStyleBackColor = true; this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click); // diff --git a/ZooBOTanica/CritCreate.resx b/ZooBOTanica/CritCreate.resx index ccdf4fd..aac2d43 100644 --- a/ZooBOTanica/CritCreate.resx +++ b/ZooBOTanica/CritCreate.resx @@ -204,7 +204,7 @@ <value>45, 20</value> </data> <data name="LeEdit.TabIndex" type="System.Int32, mscorlib"> - <value>2</value> + <value>3</value> </data> <data name=">>LeEdit.Name" xml:space="preserve"> <value>LeEdit</value> @@ -218,6 +218,102 @@ <data name=">>LeEdit.ZOrder" xml:space="preserve"> <value>6</value> </data> + <data name=">>KoLabel.Name" xml:space="preserve"> + <value>KoLabel</value> + </data> + <data name=">>KoLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>KoLabel.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>KoLabel.ZOrder" xml:space="preserve"> + <value>0</value> + </data> + <data name=">>KoEdit.Name" xml:space="preserve"> + <value>KoEdit</value> + </data> + <data name=">>KoEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>KoEdit.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>KoEdit.ZOrder" xml:space="preserve"> + <value>1</value> + </data> + <data name=">>AeLabel.Name" xml:space="preserve"> + <value>AeLabel</value> + </data> + <data name=">>AeLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>AeLabel.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>AeLabel.ZOrder" xml:space="preserve"> + <value>2</value> + </data> + <data name=">>AeEdit.Name" xml:space="preserve"> + <value>AeEdit</value> + </data> + <data name=">>AeEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>AeEdit.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>AeEdit.ZOrder" xml:space="preserve"> + <value>3</value> + </data> + <data name=">>AuLabel.Name" xml:space="preserve"> + <value>AuLabel</value> + </data> + <data name=">>AuLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>AuLabel.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>AuLabel.ZOrder" xml:space="preserve"> + <value>4</value> + </data> + <data name=">>AuEdit.Name" xml:space="preserve"> + <value>AuEdit</value> + </data> + <data name=">>AuEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>AuEdit.Parent" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>AuEdit.ZOrder" xml:space="preserve"> + <value>5</value> + </data> + <data name="GrundwerteGroup.Location" type="System.Drawing.Point, System.Drawing"> + <value>325, 117</value> + </data> + <data name="GrundwerteGroup.Size" type="System.Drawing.Size, System.Drawing"> + <value>277, 53</value> + </data> + <data name="GrundwerteGroup.TabIndex" type="System.Int32, mscorlib"> + <value>5</value> + </data> + <data name="GrundwerteGroup.Text" xml:space="preserve"> + <value>Grundwerte</value> + </data> + <data name=">>GrundwerteGroup.Name" xml:space="preserve"> + <value>GrundwerteGroup</value> + </data> + <data name=">>GrundwerteGroup.Type" xml:space="preserve"> + <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>GrundwerteGroup.Parent" xml:space="preserve"> + <value>$this</value> + </data> + <data name=">>GrundwerteGroup.ZOrder" xml:space="preserve"> + <value>9</value> + </data> <data name="KoLabel.AutoSize" type="System.Boolean, mscorlib"> <value>True</value> </data> @@ -228,7 +324,7 @@ <value>25, 13</value> </data> <data name="KoLabel.TabIndex" type="System.Int32, mscorlib"> - <value>10</value> + <value>4</value> </data> <data name="KoLabel.Text" xml:space="preserve"> <value>KO:</value> @@ -252,7 +348,7 @@ <value>45, 20</value> </data> <data name="KoEdit.TabIndex" type="System.Int32, mscorlib"> - <value>9</value> + <value>5</value> </data> <data name=">>KoEdit.Name" xml:space="preserve"> <value>KoEdit</value> @@ -276,7 +372,7 @@ <value>23, 13</value> </data> <data name="AeLabel.TabIndex" type="System.Int32, mscorlib"> - <value>8</value> + <value>2</value> </data> <data name="AeLabel.Text" xml:space="preserve"> <value>Ae:</value> @@ -300,7 +396,7 @@ <value>45, 20</value> </data> <data name="AeEdit.TabIndex" type="System.Int32, mscorlib"> - <value>8</value> + <value>3</value> </data> <data name=">>AeEdit.Name" xml:space="preserve"> <value>AeEdit</value> @@ -324,7 +420,7 @@ <value>23, 13</value> </data> <data name="AuLabel.TabIndex" type="System.Int32, mscorlib"> - <value>6</value> + <value>0</value> </data> <data name="AuLabel.Text" xml:space="preserve"> <value>Au:</value> @@ -348,7 +444,7 @@ <value>45, 20</value> </data> <data name="AuEdit.TabIndex" type="System.Int32, mscorlib"> - <value>7</value> + <value>1</value> </data> <data name=">>AuEdit.Name" xml:space="preserve"> <value>AuEdit</value> @@ -362,30 +458,6 @@ <data name=">>AuEdit.ZOrder" xml:space="preserve"> <value>5</value> </data> - <data name="GrundwerteGroup.Location" type="System.Drawing.Point, System.Drawing"> - <value>325, 117</value> - </data> - <data name="GrundwerteGroup.Size" type="System.Drawing.Size, System.Drawing"> - <value>277, 53</value> - </data> - <data name="GrundwerteGroup.TabIndex" type="System.Int32, mscorlib"> - <value>4</value> - </data> - <data name="GrundwerteGroup.Text" xml:space="preserve"> - <value>Grundwerte</value> - </data> - <data name=">>GrundwerteGroup.Name" xml:space="preserve"> - <value>GrundwerteGroup</value> - </data> - <data name=">>GrundwerteGroup.Type" xml:space="preserve"> - <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </data> - <data name=">>GrundwerteGroup.Parent" xml:space="preserve"> - <value>$this</value> - </data> - <data name=">>GrundwerteGroup.ZOrder" xml:space="preserve"> - <value>9</value> - </data> <data name="PaEdit.Location" type="System.Drawing.Point, System.Drawing"> <value>36, 23</value> </data> @@ -393,7 +465,7 @@ <value>45, 20</value> </data> <data name="PaEdit.TabIndex" type="System.Int32, mscorlib"> - <value>3</value> + <value>1</value> </data> <data name=">>PaEdit.Name" xml:space="preserve"> <value>PaEdit</value> @@ -421,7 +493,7 @@ <value>24, 13</value> </data> <data name="PaLabel.TabIndex" type="System.Int32, mscorlib"> - <value>10</value> + <value>0</value> </data> <data name="PaLabel.Text" xml:space="preserve"> <value>PA:</value> @@ -448,7 +520,7 @@ <value>27, 13</value> </data> <data name="MRLabel.TabIndex" type="System.Int32, mscorlib"> - <value>8</value> + <value>4</value> </data> <data name="MRLabel.Text" xml:space="preserve"> <value>MR:</value> @@ -472,7 +544,7 @@ <value>45, 20</value> </data> <data name="MREdit.TabIndex" type="System.Int32, mscorlib"> - <value>6</value> + <value>5</value> </data> <data name=">>MREdit.Name" xml:space="preserve"> <value>MREdit</value> @@ -496,7 +568,7 @@ <value>25, 13</value> </data> <data name="RSLAbel.TabIndex" type="System.Int32, mscorlib"> - <value>6</value> + <value>2</value> </data> <data name="RSLAbel.Text" xml:space="preserve"> <value>RS:</value> @@ -520,7 +592,7 @@ <value>45, 20</value> </data> <data name="RSEdit.TabIndex" type="System.Int32, mscorlib"> - <value>4</value> + <value>3</value> </data> <data name=">>RSEdit.Name" xml:space="preserve"> <value>RSEdit</value> @@ -541,7 +613,7 @@ <value>277, 53</value> </data> <data name="VerteidugungGroup.TabIndex" type="System.Int32, mscorlib"> - <value>10</value> + <value>4</value> </data> <data name="VerteidugungGroup.Text" xml:space="preserve"> <value>Verteidigung</value> @@ -558,6 +630,102 @@ <data name=">>VerteidugungGroup.ZOrder" xml:space="preserve"> <value>8</value> </data> + <data name=">>INIEdit.Name" xml:space="preserve"> + <value>INIEdit</value> + </data> + <data name=">>INIEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>INIEdit.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>INIEdit.ZOrder" xml:space="preserve"> + <value>0</value> + </data> + <data name=">>GWLabel.Name" xml:space="preserve"> + <value>GWLabel</value> + </data> + <data name=">>GWLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>GWLabel.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>GWLabel.ZOrder" xml:space="preserve"> + <value>1</value> + </data> + <data name=">>GWEdit.Name" xml:space="preserve"> + <value>GWEdit</value> + </data> + <data name=">>GWEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>GWEdit.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>GWEdit.ZOrder" xml:space="preserve"> + <value>2</value> + </data> + <data name=">>INILabel.Name" xml:space="preserve"> + <value>INILabel</value> + </data> + <data name=">>INILabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>INILabel.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>INILabel.ZOrder" xml:space="preserve"> + <value>3</value> + </data> + <data name=">>GsLabel.Name" xml:space="preserve"> + <value>GsLabel</value> + </data> + <data name=">>GsLabel.Type" xml:space="preserve"> + <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>GsLabel.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>GsLabel.ZOrder" xml:space="preserve"> + <value>4</value> + </data> + <data name=">>GsEdit.Name" xml:space="preserve"> + <value>GsEdit</value> + </data> + <data name=">>GsEdit.Type" xml:space="preserve"> + <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>GsEdit.Parent" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>GsEdit.ZOrder" xml:space="preserve"> + <value>5</value> + </data> + <data name="SecondGroup.Location" type="System.Drawing.Point, System.Drawing"> + <value>325, 182</value> + </data> + <data name="SecondGroup.Size" type="System.Drawing.Size, System.Drawing"> + <value>277, 53</value> + </data> + <data name="SecondGroup.TabIndex" type="System.Int32, mscorlib"> + <value>6</value> + </data> + <data name="SecondGroup.Text" xml:space="preserve"> + <value>Sekundäre Werte</value> + </data> + <data name=">>SecondGroup.Name" xml:space="preserve"> + <value>SecondGroup</value> + </data> + <data name=">>SecondGroup.Type" xml:space="preserve"> + <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </data> + <data name=">>SecondGroup.Parent" xml:space="preserve"> + <value>$this</value> + </data> + <data name=">>SecondGroup.ZOrder" xml:space="preserve"> + <value>7</value> + </data> <data name="INIEdit.Location" type="System.Drawing.Point, System.Drawing"> <value>121, 18</value> </data> @@ -565,7 +733,7 @@ <value>55, 20</value> </data> <data name="INIEdit.TabIndex" type="System.Int32, mscorlib"> - <value>11</value> + <value>3</value> </data> <data name="INIEdit.Text" xml:space="preserve"> <value>1w6</value> @@ -592,7 +760,7 @@ <value>29, 13</value> </data> <data name="GWLabel.TabIndex" type="System.Int32, mscorlib"> - <value>8</value> + <value>4</value> </data> <data name="GWLabel.Text" xml:space="preserve"> <value>GW:</value> @@ -616,7 +784,7 @@ <value>45, 20</value> </data> <data name="GWEdit.TabIndex" type="System.Int32, mscorlib"> - <value>12</value> + <value>5</value> </data> <data name=">>GWEdit.Name" xml:space="preserve"> <value>GWEdit</value> @@ -640,7 +808,7 @@ <value>24, 13</value> </data> <data name="INILabel.TabIndex" type="System.Int32, mscorlib"> - <value>6</value> + <value>2</value> </data> <data name="INILabel.Text" xml:space="preserve"> <value>INI:</value> @@ -667,7 +835,7 @@ <value>25, 13</value> </data> <data name="GsLabel.TabIndex" type="System.Int32, mscorlib"> - <value>2</value> + <value>0</value> </data> <data name="GsLabel.Text" xml:space="preserve"> <value>GS:</value> @@ -691,7 +859,7 @@ <value>45, 20</value> </data> <data name="GsEdit.TabIndex" type="System.Int32, mscorlib"> - <value>10</value> + <value>1</value> </data> <data name=">>GsEdit.Name" xml:space="preserve"> <value>GsEdit</value> @@ -705,60 +873,54 @@ <data name=">>GsEdit.ZOrder" xml:space="preserve"> <value>5</value> </data> - <data name="SecondGroup.Location" type="System.Drawing.Point, System.Drawing"> - <value>325, 182</value> + <data name=">>AttackList.Name" xml:space="preserve"> + <value>AttackList</value> </data> - <data name="SecondGroup.Size" type="System.Drawing.Size, System.Drawing"> - <value>277, 53</value> + <data name=">>AttackList.Type" xml:space="preserve"> + <value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> - <data name="SecondGroup.TabIndex" type="System.Int32, mscorlib"> - <value>10</value> + <data name=">>AttackList.Parent" xml:space="preserve"> + <value>AttackGroup</value> </data> - <data name="SecondGroup.Text" xml:space="preserve"> - <value>Sekundäre Werte</value> + <data name=">>AttackList.ZOrder" xml:space="preserve"> + <value>0</value> </data> - <data name=">>SecondGroup.Name" xml:space="preserve"> - <value>SecondGroup</value> + <data name="AttackGroup.Location" type="System.Drawing.Point, System.Drawing"> + <value>11, 21</value> </data> - <data name=">>SecondGroup.Type" xml:space="preserve"> + <data name="AttackGroup.Size" type="System.Drawing.Size, System.Drawing"> + <value>296, 181</value> + </data> + <data name="AttackGroup.TabIndex" type="System.Int32, mscorlib"> + <value>7</value> + </data> + <data name="AttackGroup.Text" xml:space="preserve"> + <value>Attacke(n)</value> + </data> + <data name=">>AttackGroup.Name" xml:space="preserve"> + <value>AttackGroup</value> + </data> + <data name=">>AttackGroup.Type" xml:space="preserve"> <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </data> - <data name=">>SecondGroup.Parent" xml:space="preserve"> + <data name=">>AttackGroup.Parent" xml:space="preserve"> <value>$this</value> </data> - <data name=">>SecondGroup.ZOrder" xml:space="preserve"> - <value>7</value> + <data name=">>AttackGroup.ZOrder" xml:space="preserve"> + <value>4</value> </data> <metadata name="NameCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <data name="NameCollum.HeaderText" xml:space="preserve"> - <value>Name</value> - </data> <metadata name="ATCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <data name="ATCollum.HeaderText" xml:space="preserve"> - <value>At</value> - </data> - <data name="ATCollum.Width" type="System.Int32, mscorlib"> - <value>42</value> - </data> <metadata name="TPCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <data name="TPCollum.HeaderText" xml:space="preserve"> - <value>TP</value> - </data> - <data name="TPCollum.Width" type="System.Int32, mscorlib"> - <value>46</value> - </data> <metadata name="KommentarCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <data name="KommentarCollum.HeaderText" xml:space="preserve"> - <value>Kommentar</value> - </data> <data name="AttackList.Location" type="System.Drawing.Point, System.Drawing"> <value>11, 19</value> </data> @@ -766,7 +928,7 @@ <value>279, 150</value> </data> <data name="AttackList.TabIndex" type="System.Int32, mscorlib"> - <value>13</value> + <value>0</value> </data> <data name=">>AttackList.Name" xml:space="preserve"> <value>AttackList</value> @@ -780,29 +942,35 @@ <data name=">>AttackList.ZOrder" xml:space="preserve"> <value>0</value> </data> - <data name="AttackGroup.Location" type="System.Drawing.Point, System.Drawing"> - <value>11, 21</value> - </data> - <data name="AttackGroup.Size" type="System.Drawing.Size, System.Drawing"> - <value>296, 181</value> - </data> - <data name="AttackGroup.TabIndex" type="System.Int32, mscorlib"> - <value>12</value> + <metadata name="NameCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <data name="NameCollum.HeaderText" xml:space="preserve"> + <value>Name</value> </data> - <data name="AttackGroup.Text" xml:space="preserve"> - <value>Attacke(n)</value> + <metadata name="ATCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <data name="ATCollum.HeaderText" xml:space="preserve"> + <value>At</value> </data> - <data name=">>AttackGroup.Name" xml:space="preserve"> - <value>AttackGroup</value> + <data name="ATCollum.Width" type="System.Int32, mscorlib"> + <value>42</value> </data> - <data name=">>AttackGroup.Type" xml:space="preserve"> - <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <metadata name="TPCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <data name="TPCollum.HeaderText" xml:space="preserve"> + <value>TP</value> </data> - <data name=">>AttackGroup.Parent" xml:space="preserve"> - <value>$this</value> + <data name="TPCollum.Width" type="System.Int32, mscorlib"> + <value>46</value> </data> - <data name=">>AttackGroup.ZOrder" xml:space="preserve"> - <value>4</value> + <metadata name="KommentarCollum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <data name="KommentarCollum.HeaderText" xml:space="preserve"> + <value>Kommentar</value> </data> <data name="MeisterkommentarEdit.Location" type="System.Drawing.Point, System.Drawing"> <value>22, 227</value> @@ -814,7 +982,7 @@ <value>279, 60</value> </data> <data name="MeisterkommentarEdit.TabIndex" type="System.Int32, mscorlib"> - <value>14</value> + <value>9</value> </data> <data name=">>MeisterkommentarEdit.Name" xml:space="preserve"> <value>MeisterkommentarEdit</value> @@ -838,7 +1006,7 @@ <value>96, 13</value> </data> <data name="MeisterkommentarLabel.TabIndex" type="System.Int32, mscorlib"> - <value>16</value> + <value>8</value> </data> <data name="MeisterkommentarLabel.Text" xml:space="preserve"> <value>Meisterkommentar:</value> @@ -862,7 +1030,7 @@ <value>119, 36</value> </data> <data name="SaveButton.TabIndex" type="System.Int32, mscorlib"> - <value>15</value> + <value>10</value> </data> <data name="SaveButton.Text" xml:space="preserve"> <value>Speichern</value> @@ -889,7 +1057,7 @@ <value>119, 36</value> </data> <data name="LoadButton.TabIndex" type="System.Int32, mscorlib"> - <value>18</value> + <value>11</value> </data> <data name="LoadButton.Text" xml:space="preserve"> <value>Laden</value> @@ -916,7 +1084,7 @@ <value>6, 13</value> </data> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> - <value>646, 304</value> + <value>606, 304</value> </data> <data name="$this.Text" xml:space="preserve"> <value>CritCreate</value> |