Complete the new banner editor

This commit is contained in:
2022-05-21 10:14:17 +08:00
parent 2c7aaed333
commit 917b8f1db5
3 changed files with 585 additions and 390 deletions

View File

@ -29,13 +29,7 @@ namespace GrasscutterTools.Forms
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannerEditor2));
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.DTPEndTime = new System.Windows.Forms.DateTimePicker();
this.DTPBeginTime = new System.Windows.Forms.DateTimePicker();
@ -75,15 +69,21 @@ namespace GrasscutterTools.Forms
this.BtnGen = new System.Windows.Forms.Button();
this.TxtJson = new System.Windows.Forms.TextBox();
this.BtnParse = new System.Windows.Forms.Button();
this.ChartWeights = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.GrpWeights = new System.Windows.Forms.GroupBox();
this.ListBannerWeights = new System.Windows.Forms.ListView();
this.ColCount = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ColWeight = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.MenuCUD = new System.Windows.Forms.ContextMenuStrip(this.components);
this.MenuItemAdd = new System.Windows.Forms.ToolStripMenuItem();
this.MenuItemRemove = new System.Windows.Forms.ToolStripMenuItem();
this.MenuItemEdit = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.LblWeight5 = new System.Windows.Forms.Label();
this.LblWeight4 = new System.Windows.Forms.Label();
this.TxtWeight5 = new System.Windows.Forms.TextBox();
this.TxtWeight4 = new System.Windows.Forms.TextBox();
this.LnkWeightHelp = new System.Windows.Forms.LinkLabel();
this.LnkOpenOldEditor = new System.Windows.Forms.LinkLabel();
this.TxtPoolWeight4 = new System.Windows.Forms.TextBox();
this.TxtPoolWeight5 = new System.Windows.Forms.TextBox();
this.LblPoolWeight4 = new System.Windows.Forms.Label();
this.LblPoolWeight5 = new System.Windows.Forms.Label();
this.ChkRemoveC6FormPool = new System.Windows.Forms.CheckBox();
this.LblOptions = new System.Windows.Forms.Label();
this.ChkAutoStripRateUpFromFallback = new System.Windows.Forms.CheckBox();
this.GrpBannerValues.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).BeginInit();
@ -93,13 +93,17 @@ namespace GrasscutterTools.Forms
this.GrpPurplePool.SuspendLayout();
this.GrpYellowPool.SuspendLayout();
this.GrpJson.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).BeginInit();
this.GrpWeights.SuspendLayout();
this.MenuCUD.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// GrpBannerValues
//
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Controls.Add(this.ChkAutoStripRateUpFromFallback);
this.GrpBannerValues.Controls.Add(this.LblOptions);
this.GrpBannerValues.Controls.Add(this.ChkRemoveC6FormPool);
this.GrpBannerValues.Controls.Add(this.LnkOpenOldEditor);
this.GrpBannerValues.Controls.Add(this.DTPEndTime);
this.GrpBannerValues.Controls.Add(this.DTPBeginTime);
this.GrpBannerValues.Controls.Add(this.CmbPrefab);
@ -126,7 +130,6 @@ namespace GrasscutterTools.Forms
this.GrpBannerValues.Controls.Add(this.LblCostItem);
this.GrpBannerValues.Controls.Add(this.LblPrefabPath);
this.GrpBannerValues.Controls.Add(this.RbCostItem223);
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Name = "GrpBannerValues";
this.GrpBannerValues.TabStop = false;
//
@ -418,104 +421,109 @@ namespace GrasscutterTools.Forms
this.BtnParse.UseVisualStyleBackColor = true;
this.BtnParse.Click += new System.EventHandler(this.BtnParse_Click);
//
// ChartWeights
// groupBox1
//
chartArea1.AxisX.MajorGrid.LineColor = System.Drawing.Color.Gainsboro;
chartArea1.AxisY.MajorGrid.LineColor = System.Drawing.Color.Gainsboro;
chartArea1.Name = "ChartArea1";
this.ChartWeights.ChartAreas.Add(chartArea1);
resources.ApplyResources(this.ChartWeights, "ChartWeights");
this.ChartWeights.Name = "ChartWeights";
series1.ChartArea = "ChartArea1";
series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series1.Name = "SeriesWeight5";
series2.ChartArea = "ChartArea1";
series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series2.Name = "SeriesWeight4";
series3.ChartArea = "ChartArea1";
series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series3.Name = "SeriesPoolWeight5";
series4.ChartArea = "ChartArea1";
series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
series4.Name = "SeriesPoolWeight4";
this.ChartWeights.Series.Add(series1);
this.ChartWeights.Series.Add(series2);
this.ChartWeights.Series.Add(series3);
this.ChartWeights.Series.Add(series4);
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Controls.Add(this.LnkWeightHelp);
this.groupBox1.Controls.Add(this.TxtWeight4);
this.groupBox1.Controls.Add(this.TxtWeight5);
this.groupBox1.Controls.Add(this.LblWeight4);
this.groupBox1.Controls.Add(this.LblWeight5);
this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false;
//
// GrpWeights
// groupBox2
//
resources.ApplyResources(this.GrpWeights, "GrpWeights");
this.GrpWeights.Controls.Add(this.ListBannerWeights);
this.GrpWeights.Controls.Add(this.ChartWeights);
this.GrpWeights.Name = "GrpWeights";
this.GrpWeights.TabStop = false;
resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Controls.Add(this.TxtPoolWeight4);
this.groupBox2.Controls.Add(this.TxtPoolWeight5);
this.groupBox2.Controls.Add(this.LblPoolWeight4);
this.groupBox2.Controls.Add(this.LblPoolWeight5);
this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false;
//
// ListBannerWeights
// LblWeight5
//
this.ListBannerWeights.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColCount,
this.ColWeight});
this.ListBannerWeights.ContextMenuStrip = this.MenuCUD;
this.ListBannerWeights.FullRowSelect = true;
this.ListBannerWeights.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListBannerWeights.Groups"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListBannerWeights.Groups1"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListBannerWeights.Groups2"))),
((System.Windows.Forms.ListViewGroup)(resources.GetObject("ListBannerWeights.Groups3")))});
this.ListBannerWeights.HideSelection = false;
resources.ApplyResources(this.ListBannerWeights, "ListBannerWeights");
this.ListBannerWeights.MultiSelect = false;
this.ListBannerWeights.Name = "ListBannerWeights";
this.ListBannerWeights.UseCompatibleStateImageBehavior = false;
this.ListBannerWeights.View = System.Windows.Forms.View.Details;
this.ListBannerWeights.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.ListBannerWeights_MouseDoubleClick);
resources.ApplyResources(this.LblWeight5, "LblWeight5");
this.LblWeight5.Name = "LblWeight5";
//
// ColCount
// LblWeight4
//
resources.ApplyResources(this.ColCount, "ColCount");
resources.ApplyResources(this.LblWeight4, "LblWeight4");
this.LblWeight4.Name = "LblWeight4";
//
// ColWeight
// TxtWeight5
//
resources.ApplyResources(this.ColWeight, "ColWeight");
resources.ApplyResources(this.TxtWeight5, "TxtWeight5");
this.TxtWeight5.Name = "TxtWeight5";
//
// MenuCUD
// TxtWeight4
//
this.MenuCUD.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.MenuItemEdit,
this.MenuItemAdd,
this.MenuItemRemove});
this.MenuCUD.Name = "MenuCUD";
resources.ApplyResources(this.MenuCUD, "MenuCUD");
resources.ApplyResources(this.TxtWeight4, "TxtWeight4");
this.TxtWeight4.Name = "TxtWeight4";
//
// MenuItemAdd
// LnkWeightHelp
//
this.MenuItemAdd.Name = "MenuItemAdd";
resources.ApplyResources(this.MenuItemAdd, "MenuItemAdd");
this.MenuItemAdd.Click += new System.EventHandler(this.MenuItemAdd_Click);
resources.ApplyResources(this.LnkWeightHelp, "LnkWeightHelp");
this.LnkWeightHelp.Name = "LnkWeightHelp";
this.LnkWeightHelp.TabStop = true;
this.LnkWeightHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkWeightHelp_LinkClicked);
//
// MenuItemRemove
// LnkOpenOldEditor
//
this.MenuItemRemove.Name = "MenuItemRemove";
resources.ApplyResources(this.MenuItemRemove, "MenuItemRemove");
this.MenuItemRemove.Click += new System.EventHandler(this.MenuItemRemove_Click);
resources.ApplyResources(this.LnkOpenOldEditor, "LnkOpenOldEditor");
this.LnkOpenOldEditor.Name = "LnkOpenOldEditor";
this.LnkOpenOldEditor.TabStop = true;
this.LnkOpenOldEditor.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkOpenOldEditor_LinkClicked);
//
// MenuItemEdit
// TxtPoolWeight4
//
this.MenuItemEdit.Name = "MenuItemEdit";
resources.ApplyResources(this.MenuItemEdit, "MenuItemEdit");
this.MenuItemEdit.Click += new System.EventHandler(this.MenuItemEdit_Click);
resources.ApplyResources(this.TxtPoolWeight4, "TxtPoolWeight4");
this.TxtPoolWeight4.Name = "TxtPoolWeight4";
//
// TxtPoolWeight5
//
resources.ApplyResources(this.TxtPoolWeight5, "TxtPoolWeight5");
this.TxtPoolWeight5.Name = "TxtPoolWeight5";
//
// LblPoolWeight4
//
resources.ApplyResources(this.LblPoolWeight4, "LblPoolWeight4");
this.LblPoolWeight4.Name = "LblPoolWeight4";
//
// LblPoolWeight5
//
resources.ApplyResources(this.LblPoolWeight5, "LblPoolWeight5");
this.LblPoolWeight5.Name = "LblPoolWeight5";
//
// ChkRemoveC6FormPool
//
resources.ApplyResources(this.ChkRemoveC6FormPool, "ChkRemoveC6FormPool");
this.ChkRemoveC6FormPool.Name = "ChkRemoveC6FormPool";
this.ChkRemoveC6FormPool.UseVisualStyleBackColor = true;
//
// LblOptions
//
resources.ApplyResources(this.LblOptions, "LblOptions");
this.LblOptions.Name = "LblOptions";
//
// ChkAutoStripRateUpFromFallback
//
resources.ApplyResources(this.ChkAutoStripRateUpFromFallback, "ChkAutoStripRateUpFromFallback");
this.ChkAutoStripRateUpFromFallback.Name = "ChkAutoStripRateUpFromFallback";
this.ChkAutoStripRateUpFromFallback.UseVisualStyleBackColor = true;
//
// FormGachaBannerEditor2
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.GrpWeights);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.GrpJson);
this.Controls.Add(this.GrpPurplePool);
this.Controls.Add(this.GrpYellowPool);
this.Controls.Add(this.GrpBannerValues);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.Name = "FormGachaBannerEditor2";
this.GrpBannerValues.ResumeLayout(false);
this.GrpBannerValues.PerformLayout();
@ -528,9 +536,10 @@ namespace GrasscutterTools.Forms
this.GrpYellowPool.ResumeLayout(false);
this.GrpJson.ResumeLayout(false);
this.GrpJson.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.ChartWeights)).EndInit();
this.GrpWeights.ResumeLayout(false);
this.MenuCUD.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.ResumeLayout(false);
}
@ -567,22 +576,28 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.Label LblEventChance4;
private System.Windows.Forms.Label LblEventChance4Tip;
private System.Windows.Forms.NumericUpDown NUDEventChance4;
private System.Windows.Forms.DataVisualization.Charting.Chart ChartWeights;
private System.Windows.Forms.GroupBox GrpWeights;
private System.Windows.Forms.DateTimePicker DTPEndTime;
private System.Windows.Forms.DateTimePicker DTPBeginTime;
private System.Windows.Forms.ListView ListBannerWeights;
private System.Windows.Forms.ListView ListFallbackItems;
private System.Windows.Forms.ListView ListUpItems;
private System.Windows.Forms.ColumnHeader ColFallbackId;
private System.Windows.Forms.ColumnHeader ColFallbackName;
private System.Windows.Forms.ColumnHeader ColUpId;
private System.Windows.Forms.ColumnHeader ColUpName;
private System.Windows.Forms.ColumnHeader ColCount;
private System.Windows.Forms.ColumnHeader ColWeight;
private System.Windows.Forms.ContextMenuStrip MenuCUD;
private System.Windows.Forms.ToolStripMenuItem MenuItemEdit;
private System.Windows.Forms.ToolStripMenuItem MenuItemAdd;
private System.Windows.Forms.ToolStripMenuItem MenuItemRemove;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox TxtWeight4;
private System.Windows.Forms.TextBox TxtWeight5;
private System.Windows.Forms.Label LblWeight4;
private System.Windows.Forms.Label LblWeight5;
private System.Windows.Forms.LinkLabel LnkWeightHelp;
private System.Windows.Forms.LinkLabel LnkOpenOldEditor;
private System.Windows.Forms.TextBox TxtPoolWeight4;
private System.Windows.Forms.TextBox TxtPoolWeight5;
private System.Windows.Forms.Label LblPoolWeight4;
private System.Windows.Forms.Label LblPoolWeight5;
private System.Windows.Forms.CheckBox ChkRemoveC6FormPool;
private System.Windows.Forms.CheckBox ChkAutoStripRateUpFromFallback;
private System.Windows.Forms.Label LblOptions;
}
}

View File

@ -57,6 +57,17 @@ namespace GrasscutterTools.Forms
CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names);
}
private void LnkWeightHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("https://github.com/Grasscutters/Grasscutter/pull/639");
}
private void LnkOpenOldEditor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
new FormGachaBannerEditor().ShowDialog();
}
#region - -
private void InitCheckedListBoxs()
@ -159,99 +170,35 @@ namespace GrasscutterTools.Forms
#region - -
Series SeriesW5;
Series SeriesW4;
Series SeriesPW5;
Series SeriesPW4;
struct GachaWeight
{
public int Count;
public int Weight;
public GachaWeight(int count, int weight)
{
Count = count;
Weight = weight;
}
}
private void InitWeights(GachaBanner2 banner)
{
var w5 = ListBannerWeights.Groups["GroupWeight5"];
var w4 = ListBannerWeights.Groups["GroupWeight4"];
var pw5 = ListBannerWeights.Groups["GroupPoolWeight5"];
var pw4 = ListBannerWeights.Groups["GroupPoolWeight4"];
SeriesW5 = ChartWeights.Series["SeriesWeight5"];
SeriesW5.Color = Color.OrangeRed;
SeriesW5.Points.Clear();
SeriesW4 = ChartWeights.Series["SeriesWeight4"];
SeriesW4.Color = Color.Purple;
SeriesW4.Points.Clear();
SeriesPW5 = ChartWeights.Series["SeriesPoolWeight5"];
SeriesPW5.Color = Color.Orange;
SeriesPW5.Points.Clear();
SeriesPW4 = ChartWeights.Series["SeriesPoolWeight4"];
SeriesPW4.Color = Color.MediumPurple;
SeriesPW4.Points.Clear();
var t = SelectWeights(banner.Weights5).Select(it => new ListViewItem(it, w5) { ForeColor = SeriesW5.Color })
.Concat(SelectWeights(banner.Weights4).Select(it => new ListViewItem(it, w4) { ForeColor = SeriesW4.Color }))
.Concat(SelectWeights(banner.PoolBalanceWeights5).Select(it => new ListViewItem(it, pw5) { ForeColor = SeriesPW5.Color }))
.Concat(SelectWeights(banner.PoolBalanceWeights4).Select(it => new ListViewItem(it, pw4) { ForeColor = SeriesPW4.Color }));
ListBannerWeights.BeginUpdate();
ListBannerWeights.Items.Clear();
ListBannerWeights.Items.AddRange(t.ToArray());
ListBannerWeights.EndUpdate();
UpdateChart();
TxtWeight5.Text = '[' + string.Join(", ", SelectWeights(banner.Weights5).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.Weights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight5.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights5).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
TxtPoolWeight4.Text = '[' + string.Join(", ", SelectWeights(banner.PoolBalanceWeights4).Select(w => $"[{w.Count}, {w.Weight}]")) + ']';
}
private void UpdateChart()
{
// TODO
}
private IEnumerable<string[]> SelectWeights(int[,] weights)
private IEnumerable<GachaWeight> SelectWeights(int[,] weights)
{
for (int i = 0; i < weights.GetLength(0); i++)
yield return new string[] { weights[i, 0].ToString(), weights[i, 1].ToString() };
yield return new GachaWeight(weights[i, 0], weights[i, 1]);
}
private int[,] GetWeights(ListViewGroup group)
private int[,] GetWeights(string weights)
{
var weights = new int[group.Items.Count, 2];
int i = 0;
foreach (ListViewItem item in group.Items)
{
weights[i, 0] = int.Parse(item.SubItems[0].Text);
weights[i, 1] = int.Parse(item.SubItems[1].Text);
i++;
}
return weights;
}
private void ListBannerWeights_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (ListBannerWeights.SelectedItems.Count != 1)
return;
MessageBox.Show("TODO");
}
private void MenuItemEdit_Click(object sender, EventArgs e)
{
if (ListBannerWeights.SelectedItems.Count != 1)
{
MessageBox.Show("请先选择目标", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
MessageBox.Show("TODO");
}
private void MenuItemAdd_Click(object sender, EventArgs e)
{
if (ListBannerWeights.SelectedItems.Count != 1)
{
MessageBox.Show("请先选择目标", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
MessageBox.Show("TODO");
}
private void MenuItemRemove_Click(object sender, EventArgs e)
{
if (ListBannerWeights.SelectedItems.Count != 1)
{
MessageBox.Show("请先选择目标", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
MessageBox.Show("TODO");
return JsonConvert.DeserializeObject<int[,]>(weights);
}
#endregion
@ -276,6 +223,8 @@ namespace GrasscutterTools.Forms
NUDSortId.Value = banner.SortId;
NUDEventChance5.Value = banner.EventChance5;
NUDEventChance4.Value = banner.EventChance4;
ChkRemoveC6FormPool.Checked = banner.RemoveC6FromPool;
ChkAutoStripRateUpFromFallback.Checked = banner.AutoStripRateUpFromFallback;
InitItems(banner);
InitWeights(banner);
}
@ -310,11 +259,19 @@ namespace GrasscutterTools.Forms
PreviewPrefabPath = $"UI_Tab_GachaShowPanel_A{prefabId:000}",
TitlePath = $"UI_GACHA_SHOW_PANEL_A{prefabId:000}_TITLE",
CostItem = RbCostItem224.Checked ? 224 : 223,
BeginTime = (int)new DateTimeOffset(DTPBeginTime.Value).ToUnixTimeSeconds(),
EndTime = (int)new DateTimeOffset(DTPEndTime.Value).ToUnixTimeSeconds(),
BeginTime = (int)new DateTimeOffset(DTPBeginTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(),
EndTime = (int)new DateTimeOffset(DTPEndTime.Value, TimeSpan.Zero).ToUnixTimeSeconds(),
SortId = (int)NUDSortId.Value,
EventChance5 = (int)NUDEventChance5.Value,
EventChance4 = (int)NUDEventChance4.Value,
RateUpItems4 = GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpA4"])
.Concat(GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpW4"]))
.ToArray(),
RateUpItems5 = GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpA5"])
.Concat(GetCheckedItems(ListUpItems, ListUpItems.Groups["GroupUpW5"]))
.ToArray(),
FallbackItems3 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupA3"])
.Concat(GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupW3"]))
.ToArray(),
@ -323,20 +280,28 @@ namespace GrasscutterTools.Forms
FallbackItems5Pool1 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupA5"]).ToArray(),
FallbackItems5Pool2 = GetCheckedItems(ListFallbackItems, ListFallbackItems.Groups["GroupW5"]).ToArray(),
Weights4 = GetWeights(ListBannerWeights.Groups["GroupWeight4"]),
Weights5 = GetWeights(ListBannerWeights.Groups["GroupWeight5"]),
PoolBalanceWeights4 = GetWeights(ListBannerWeights.Groups["GroupPoolWeight4"]),
PoolBalanceWeights5 = GetWeights(ListBannerWeights.Groups["GroupPoolWeight5"]),
};
RemoveC6FromPool = ChkRemoveC6FormPool.Checked,
AutoStripRateUpFromFallback = ChkAutoStripRateUpFromFallback.Checked,
Weights4 = GetWeights(TxtWeight4.Text),
Weights5 = GetWeights(TxtWeight5.Text),
PoolBalanceWeights4 = GetWeights(TxtPoolWeight4.Text),
PoolBalanceWeights5 = GetWeights(TxtPoolWeight5.Text),
};
return banner;
}
private void BtnGen_Click(object sender, EventArgs e)
{
var banner = ParseBanner();
if (banner != null)
try
{
TxtJson.Text = JsonConvert.SerializeObject(banner, Formatting.Indented);
var banner = ParseBanner();
if (banner != null)
TxtJson.Text = JsonConvert.SerializeObject(banner, Formatting.Indented);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
@ -348,11 +313,11 @@ namespace GrasscutterTools.Forms
}
catch (Exception ex)
{
MessageBox.Show("Json解析失败错误消息" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
}
}

View File

@ -117,14 +117,126 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="GrpBannerValues.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="ChkAutoStripRateUpFromFallback.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ChkAutoStripRateUpFromFallback.Location" type="System.Drawing.Point, System.Drawing">
<value>217, 260</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Size" type="System.Drawing.Size, System.Drawing">
<value>151, 21</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.TabIndex" type="System.Int32, mscorlib">
<value>92</value>
</data>
<data name="ChkAutoStripRateUpFromFallback.Text" xml:space="preserve">
<value>自动避免UP被基础抽中</value>
</data>
<data name="&gt;&gt;ChkAutoStripRateUpFromFallback.Name" xml:space="preserve">
<value>ChkAutoStripRateUpFromFallback</value>
</data>
<data name="&gt;&gt;ChkAutoStripRateUpFromFallback.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ChkAutoStripRateUpFromFallback.Parent" xml:space="preserve">
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;ChkAutoStripRateUpFromFallback.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="LblOptions.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblOptions.Location" type="System.Drawing.Point, System.Drawing">
<value>74, 261</value>
</data>
<data name="LblOptions.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 17</value>
</data>
<data name="LblOptions.TabIndex" type="System.Int32, mscorlib">
<value>91</value>
</data>
<data name="LblOptions.Text" xml:space="preserve">
<value>选项</value>
</data>
<data name="&gt;&gt;LblOptions.Name" xml:space="preserve">
<value>LblOptions</value>
</data>
<data name="&gt;&gt;LblOptions.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="&gt;&gt;LblOptions.Parent" xml:space="preserve">
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblOptions.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="ChkRemoveC6FormPool.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="ChkRemoveC6FormPool.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 260</value>
</data>
<data name="ChkRemoveC6FormPool.Size" type="System.Drawing.Size, System.Drawing">
<value>99, 21</value>
</data>
<data name="ChkRemoveC6FormPool.TabIndex" type="System.Int32, mscorlib">
<value>90</value>
</data>
<data name="ChkRemoveC6FormPool.Text" xml:space="preserve">
<value>避免命座溢出</value>
</data>
<data name="&gt;&gt;ChkRemoveC6FormPool.Name" xml:space="preserve">
<value>ChkRemoveC6FormPool</value>
</data>
<data name="&gt;&gt;ChkRemoveC6FormPool.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ChkRemoveC6FormPool.Parent" xml:space="preserve">
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;ChkRemoveC6FormPool.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LnkOpenOldEditor.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LnkOpenOldEditor.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 309</value>
</data>
<data name="LnkOpenOldEditor.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 17</value>
</data>
<data name="LnkOpenOldEditor.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="LnkOpenOldEditor.Text" xml:space="preserve">
<value>打开旧版本编辑器</value>
</data>
<data name="&gt;&gt;LnkOpenOldEditor.Name" xml:space="preserve">
<value>LnkOpenOldEditor</value>
</data>
<data name="&gt;&gt;LnkOpenOldEditor.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LnkOpenOldEditor.Parent" xml:space="preserve">
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LnkOpenOldEditor.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="DTPEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>302, 173</value>
</data>
<data name="DTPEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 23</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="DTPEndTime.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
@ -138,7 +250,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;DTPEndTime.ZOrder" xml:space="preserve">
<value>0</value>
<value>4</value>
</data>
<data name="DTPBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 173</value>
@ -159,7 +271,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;DTPBeginTime.ZOrder" xml:space="preserve">
<value>1</value>
<value>5</value>
</data>
<data name="CmbPrefab.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 115</value>
@ -180,12 +292,11 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;CmbPrefab.ZOrder" xml:space="preserve">
<value>2</value>
<value>6</value>
</data>
<data name="LblEventChance4Tip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblEventChance4Tip.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
@ -211,7 +322,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblEventChance4Tip.ZOrder" xml:space="preserve">
<value>3</value>
<value>7</value>
</data>
<data name="LblEventChance5Tip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -238,7 +349,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblEventChance5Tip.ZOrder" xml:space="preserve">
<value>4</value>
<value>8</value>
</data>
<data name="NUDEventChance4.Location" type="System.Drawing.Point, System.Drawing">
<value>302, 231</value>
@ -259,7 +370,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;NUDEventChance4.ZOrder" xml:space="preserve">
<value>5</value>
<value>9</value>
</data>
<data name="NUDEventChance5.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 231</value>
@ -280,7 +391,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;NUDEventChance5.ZOrder" xml:space="preserve">
<value>6</value>
<value>10</value>
</data>
<data name="LblGachaType.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -307,7 +418,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblGachaType.ZOrder" xml:space="preserve">
<value>7</value>
<value>11</value>
</data>
<data name="LblEventChance4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -337,7 +448,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblEventChance4.ZOrder" xml:space="preserve">
<value>8</value>
<value>12</value>
</data>
<data name="LblEventChance5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -364,7 +475,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblEventChance5.ZOrder" xml:space="preserve">
<value>9</value>
<value>13</value>
</data>
<data name="LblSortId.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -391,7 +502,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblSortId.ZOrder" xml:space="preserve">
<value>10</value>
<value>14</value>
</data>
<data name="NUDGachaType.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 26</value>
@ -412,7 +523,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;NUDGachaType.ZOrder" xml:space="preserve">
<value>11</value>
<value>15</value>
</data>
<data name="NUDSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 202</value>
@ -433,7 +544,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;NUDSortId.ZOrder" xml:space="preserve">
<value>12</value>
<value>16</value>
</data>
<data name="LblGachaTypeTip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -460,7 +571,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblGachaTypeTip.ZOrder" xml:space="preserve">
<value>13</value>
<value>17</value>
</data>
<data name="LblEndTime.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -487,7 +598,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblEndTime.ZOrder" xml:space="preserve">
<value>14</value>
<value>18</value>
</data>
<data name="LblScheduleId.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -514,7 +625,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblScheduleId.ZOrder" xml:space="preserve">
<value>15</value>
<value>19</value>
</data>
<data name="LblBeginTime.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -541,7 +652,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblBeginTime.ZOrder" xml:space="preserve">
<value>16</value>
<value>20</value>
</data>
<data name="NUDScheduleId.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 55</value>
@ -562,7 +673,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;NUDScheduleId.ZOrder" xml:space="preserve">
<value>17</value>
<value>21</value>
</data>
<data name="LblScheduleIdTip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -589,7 +700,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblScheduleIdTip.ZOrder" xml:space="preserve">
<value>18</value>
<value>22</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>常驻池</value>
@ -619,7 +730,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;CmbBannerType.ZOrder" xml:space="preserve">
<value>19</value>
<value>23</value>
</data>
<data name="LblSortIdTip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -646,7 +757,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblSortIdTip.ZOrder" xml:space="preserve">
<value>20</value>
<value>24</value>
</data>
<data name="LblBannerType.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -673,7 +784,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblBannerType.ZOrder" xml:space="preserve">
<value>21</value>
<value>25</value>
</data>
<data name="RbCostItem224.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -700,7 +811,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;RbCostItem224.ZOrder" xml:space="preserve">
<value>22</value>
<value>26</value>
</data>
<data name="LblCostItem.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -727,7 +838,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblCostItem.ZOrder" xml:space="preserve">
<value>23</value>
<value>27</value>
</data>
<data name="LblPrefabPath.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -754,7 +865,7 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;LblPrefabPath.ZOrder" xml:space="preserve">
<value>24</value>
<value>28</value>
</data>
<data name="RbCostItem223.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -781,16 +892,16 @@
<value>GrpBannerValues</value>
</data>
<data name="&gt;&gt;RbCostItem223.ZOrder" xml:space="preserve">
<value>25</value>
<value>29</value>
</data>
<data name="GrpBannerValues.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 12</value>
</data>
<data name="GrpBannerValues.Size" type="System.Drawing.Size, System.Drawing">
<value>440, 268</value>
<value>440, 329</value>
</data>
<data name="GrpBannerValues.TabIndex" type="System.Int32, mscorlib">
<value>44</value>
<value>0</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>卡池参数</value>
@ -913,7 +1024,7 @@
<value>210, 305</value>
</data>
<data name="GrpPurplePool.TabIndex" type="System.Int32, mscorlib">
<value>50</value>
<value>5</value>
</data>
<data name="GrpPurplePool.Text" xml:space="preserve">
<value>基础池</value>
@ -1016,7 +1127,7 @@
<value>210, 230</value>
</data>
<data name="GrpYellowPool.TabIndex" type="System.Int32, mscorlib">
<value>49</value>
<value>4</value>
</data>
<data name="GrpYellowPool.Text" xml:space="preserve">
<value>UP池</value>
@ -1046,7 +1157,7 @@
<value>75, 23</value>
</data>
<data name="BtnGen.TabIndex" type="System.Int32, mscorlib">
<value>53</value>
<value>0</value>
</data>
<data name="BtnGen.Text" xml:space="preserve">
<value>生成Json</value>
@ -1079,7 +1190,7 @@
<value>288, 487</value>
</data>
<data name="TxtJson.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
<value>2</value>
</data>
<data name="&gt;&gt;TxtJson.Name" xml:space="preserve">
<value>TxtJson</value>
@ -1103,7 +1214,7 @@
<value>75, 23</value>
</data>
<data name="BtnParse.TabIndex" type="System.Int32, mscorlib">
<value>52</value>
<value>1</value>
</data>
<data name="BtnParse.Text" xml:space="preserve">
<value>解析Json</value>
@ -1127,7 +1238,7 @@
<value>300, 541</value>
</data>
<data name="GrpJson.TabIndex" type="System.Int32, mscorlib">
<value>51</value>
<value>6</value>
</data>
<data name="GrpJson.Text" xml:space="preserve">
<value>Json</value>
@ -1144,154 +1255,285 @@
<data name="&gt;&gt;GrpJson.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="ChartWeights.Location" type="System.Drawing.Point, System.Drawing">
<value>162, 22</value>
<data name="groupBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="ChartWeights.Size" type="System.Drawing.Size, System.Drawing">
<value>272, 239</value>
<data name="LnkWeightHelp.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="ChartWeights.TabIndex" type="System.Int32, mscorlib">
<value>91</value>
<data name="LnkWeightHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>402, 0</value>
</data>
<data name="ChartWeights.Text" xml:space="preserve">
<value>Weights</value>
<data name="LnkWeightHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 17</value>
</data>
<data name="&gt;&gt;ChartWeights.Name" xml:space="preserve">
<value>ChartWeights</value>
<data name="LnkWeightHelp.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;ChartWeights.Type" xml:space="preserve">
<value>System.Windows.Forms.DataVisualization.Charting.Chart, System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</value>
<data name="LnkWeightHelp.Text" xml:space="preserve">
<value>帮助</value>
</data>
<data name="&gt;&gt;ChartWeights.Parent" xml:space="preserve">
<value>GrpWeights</value>
<data name="&gt;&gt;LnkWeightHelp.Name" xml:space="preserve">
<value>LnkWeightHelp</value>
</data>
<data name="&gt;&gt;ChartWeights.ZOrder" xml:space="preserve">
<value>1</value>
<data name="&gt;&gt;LnkWeightHelp.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="GrpWeights.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
<data name="&gt;&gt;LnkWeightHelp.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="ColCount.Text" xml:space="preserve">
<value>次数</value>
</data>
<data name="ColWeight.Text" xml:space="preserve">
<value>权重</value>
</data>
<metadata name="MenuCUD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="MenuItemEdit.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 22</value>
</data>
<data name="MenuItemEdit.Text" xml:space="preserve">
<value>编辑点</value>
</data>
<data name="MenuItemAdd.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 22</value>
</data>
<data name="MenuItemAdd.Text" xml:space="preserve">
<value>添加点</value>
</data>
<data name="MenuItemRemove.Size" type="System.Drawing.Size, System.Drawing">
<value>112, 22</value>
</data>
<data name="MenuItemRemove.Text" xml:space="preserve">
<value>移除点</value>
</data>
<data name="MenuCUD.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 70</value>
</data>
<data name="&gt;&gt;MenuCUD.Name" xml:space="preserve">
<value>MenuCUD</value>
</data>
<data name="&gt;&gt;MenuCUD.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="ListBannerWeights.Groups" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo15pif5p2D6YeNBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAMR3JvdXBXZWlnaHQ1Cw==
</value>
</data>
<data name="ListBannerWeights.Groups1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAAAo05pif5p2D6YeNBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVu
dAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAMR3JvdXBXZWlnaHQ0Cw==
</value>
</data>
<data name="ListBannerWeights.Groups2" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAABA15pif5bmz6KGh5p2D6YeNBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFs
aWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAQR3JvdXBQb29sV2VpZ2h0NQs=
</value>
</data>
<data name="ListBannerWeights.Groups3" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0dyb3VwBAAAAAZIZWFkZXIPSGVhZGVyQWxpZ25tZW50A1Rh
ZwROYW1lAQQCAShTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50AgAAAAIAAAAG
AwAAABA05pif5bmz6KGh5p2D6YeNBfz///8oU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFs
aWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAAKBgUAAAAQR3JvdXBQb29sV2VpZ2h0NAs=
</value>
</data>
<data name="ListBannerWeights.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 22</value>
</data>
<data name="ListBannerWeights.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 239</value>
</data>
<data name="ListBannerWeights.TabIndex" type="System.Int32, mscorlib">
<value>92</value>
</data>
<data name="&gt;&gt;ListBannerWeights.Name" xml:space="preserve">
<value>ListBannerWeights</value>
</data>
<data name="&gt;&gt;ListBannerWeights.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListBannerWeights.Parent" xml:space="preserve">
<value>GrpWeights</value>
</data>
<data name="&gt;&gt;ListBannerWeights.ZOrder" xml:space="preserve">
<data name="&gt;&gt;LnkWeightHelp.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="GrpWeights.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 286</value>
<data name="TxtWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 58</value>
</data>
<data name="GrpWeights.Size" type="System.Drawing.Size, System.Drawing">
<value>440, 267</value>
<data name="TxtWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>300, 23</value>
</data>
<data name="GrpWeights.TabIndex" type="System.Int32, mscorlib">
<value>93</value>
<data name="TxtWeight4.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="GrpWeights.Text" xml:space="preserve">
<value>卡池权重</value>
<data name="&gt;&gt;TxtWeight4.Name" xml:space="preserve">
<value>TxtWeight4</value>
</data>
<data name="&gt;&gt;GrpWeights.Name" xml:space="preserve">
<value>GrpWeights</value>
<data name="&gt;&gt;TxtWeight4.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="&gt;&gt;GrpWeights.Type" xml:space="preserve">
<data name="&gt;&gt;TxtWeight4.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;TxtWeight4.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="TxtWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 29</value>
</data>
<data name="TxtWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>300, 23</value>
</data>
<data name="TxtWeight5.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;TxtWeight5.Name" xml:space="preserve">
<value>TxtWeight5</value>
</data>
<data name="&gt;&gt;TxtWeight5.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="&gt;&gt;TxtWeight5.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;TxtWeight5.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LblWeight4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>55, 61</value>
</data>
<data name="LblWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 17</value>
</data>
<data name="LblWeight4.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="LblWeight4.Text" xml:space="preserve">
<value>4星权重</value>
</data>
<data name="&gt;&gt;LblWeight4.Name" xml:space="preserve">
<value>LblWeight4</value>
</data>
<data name="&gt;&gt;LblWeight4.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="&gt;&gt;LblWeight4.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;LblWeight4.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="LblWeight5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>55, 32</value>
</data>
<data name="LblWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 17</value>
</data>
<data name="LblWeight5.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="LblWeight5.Text" xml:space="preserve">
<value>5星权重</value>
</data>
<data name="&gt;&gt;LblWeight5.Name" xml:space="preserve">
<value>LblWeight5</value>
</data>
<data name="&gt;&gt;LblWeight5.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="&gt;&gt;LblWeight5.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;LblWeight5.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 347</value>
</data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>440, 100</value>
</data>
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>卡池权重与保底机制</value>
</data>
<data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;groupBox1.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="&gt;&gt;GrpWeights.Parent" xml:space="preserve">
<data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;GrpWeights.ZOrder" xml:space="preserve">
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="groupBox2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="TxtPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 58</value>
</data>
<data name="TxtPoolWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>300, 23</value>
</data>
<data name="TxtPoolWeight4.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;TxtPoolWeight4.Name" xml:space="preserve">
<value>TxtPoolWeight4</value>
</data>
<data name="&gt;&gt;TxtPoolWeight4.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="&gt;&gt;TxtPoolWeight4.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;TxtPoolWeight4.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="TxtPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 29</value>
</data>
<data name="TxtPoolWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>300, 23</value>
</data>
<data name="TxtPoolWeight5.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;TxtPoolWeight5.Name" xml:space="preserve">
<value>TxtPoolWeight5</value>
</data>
<data name="&gt;&gt;TxtPoolWeight5.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="&gt;&gt;TxtPoolWeight5.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;TxtPoolWeight5.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="LblPoolWeight4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblPoolWeight4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LblPoolWeight4.Location" type="System.Drawing.Point, System.Drawing">
<value>43, 61</value>
</data>
<data name="LblPoolWeight4.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
</data>
<data name="LblPoolWeight4.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="LblPoolWeight4.Text" xml:space="preserve">
<value>4星池权重</value>
</data>
<data name="&gt;&gt;LblPoolWeight4.Name" xml:space="preserve">
<value>LblPoolWeight4</value>
</data>
<data name="&gt;&gt;LblPoolWeight4.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="&gt;&gt;LblPoolWeight4.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;LblPoolWeight4.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LblPoolWeight5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblPoolWeight5.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="LblPoolWeight5.Location" type="System.Drawing.Point, System.Drawing">
<value>43, 32</value>
</data>
<data name="LblPoolWeight5.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
</data>
<data name="LblPoolWeight5.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="LblPoolWeight5.Text" xml:space="preserve">
<value>5星池权重</value>
</data>
<data name="&gt;&gt;LblPoolWeight5.Name" xml:space="preserve">
<value>LblPoolWeight5</value>
</data>
<data name="&gt;&gt;LblPoolWeight5.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="&gt;&gt;LblPoolWeight5.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;LblPoolWeight5.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 453</value>
</data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>440, 100</value>
</data>
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="groupBox2.Text" xml:space="preserve">
<value>角色和武器平衡机制(仅混合池有效)</value>
</data>
<data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;groupBox2.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="&gt;&gt;groupBox2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -1307,6 +1549,9 @@
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>1000, 600</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
@ -1337,36 +1582,6 @@
<data name="&gt;&gt;ColUpName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColCount.Name" xml:space="preserve">
<value>ColCount</value>
</data>
<data name="&gt;&gt;ColCount.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColWeight.Name" xml:space="preserve">
<value>ColWeight</value>
</data>
<data name="&gt;&gt;ColWeight.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;MenuItemAdd.Name" xml:space="preserve">
<value>MenuItemAdd</value>
</data>
<data name="&gt;&gt;MenuItemAdd.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;MenuItemRemove.Name" xml:space="preserve">
<value>MenuItemRemove</value>
</data>
<data name="&gt;&gt;MenuItemRemove.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;MenuItemEdit.Name" xml:space="preserve">
<value>MenuItemEdit</value>
</data>
<data name="&gt;&gt;MenuItemEdit.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>FormGachaBannerEditor2</value>
</data>