Make basic interface framework (unfinished)

This commit is contained in:
2022-05-19 22:04:59 +08:00
parent 7f10eb8ac4
commit 26faaf001e
10 changed files with 4128 additions and 1232 deletions

View File

@ -31,7 +31,6 @@ namespace GrasscutterTools.Forms
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannerEditor));
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.LblBannerEditorOldTip = new System.Windows.Forms.Label();
this.CmbPrefab = new System.Windows.Forms.ComboBox();
this.LblEventChanceTip = new System.Windows.Forms.Label();
this.NUDEventChance = new System.Windows.Forms.NumericUpDown();
@ -98,7 +97,6 @@ namespace GrasscutterTools.Forms
// GrpBannerValues
//
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Controls.Add(this.LblBannerEditorOldTip);
this.GrpBannerValues.Controls.Add(this.CmbPrefab);
this.GrpBannerValues.Controls.Add(this.LblEventChanceTip);
this.GrpBannerValues.Controls.Add(this.NUDEventChance);
@ -141,17 +139,11 @@ namespace GrasscutterTools.Forms
this.GrpBannerValues.Name = "GrpBannerValues";
this.GrpBannerValues.TabStop = false;
//
// LblBannerEditorOldTip
//
resources.ApplyResources(this.LblBannerEditorOldTip, "LblBannerEditorOldTip");
this.LblBannerEditorOldTip.ForeColor = System.Drawing.Color.Red;
this.LblBannerEditorOldTip.Name = "LblBannerEditorOldTip";
//
// CmbPrefab
//
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbPrefab.FormattingEnabled = true;
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.Name = "CmbPrefab";
//
// LblEventChanceTip
@ -181,8 +173,8 @@ namespace GrasscutterTools.Forms
//
// NUDBaseYellowWeight
//
resources.ApplyResources(this.NUDBaseYellowWeight, "NUDBaseYellowWeight");
this.NUDBaseYellowWeight.DecimalPlaces = 2;
resources.ApplyResources(this.NUDBaseYellowWeight, "NUDBaseYellowWeight");
this.NUDBaseYellowWeight.Name = "NUDBaseYellowWeight";
this.NUDBaseYellowWeight.Value = new decimal(new int[] {
6,
@ -197,8 +189,8 @@ namespace GrasscutterTools.Forms
//
// TxtRateUpItems2
//
resources.ApplyResources(this.TxtRateUpItems2, "TxtRateUpItems2");
this.TxtRateUpItems2.BackColor = System.Drawing.Color.White;
resources.ApplyResources(this.TxtRateUpItems2, "TxtRateUpItems2");
this.TxtRateUpItems2.Name = "TxtRateUpItems2";
this.TxtRateUpItems2.ReadOnly = true;
//
@ -294,8 +286,8 @@ namespace GrasscutterTools.Forms
//
// TxtRateUpItems1
//
resources.ApplyResources(this.TxtRateUpItems1, "TxtRateUpItems1");
this.TxtRateUpItems1.BackColor = System.Drawing.Color.White;
resources.ApplyResources(this.TxtRateUpItems1, "TxtRateUpItems1");
this.TxtRateUpItems1.Name = "TxtRateUpItems1";
this.TxtRateUpItems1.ReadOnly = true;
//
@ -381,13 +373,13 @@ namespace GrasscutterTools.Forms
//
// CmbBannerType
//
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbBannerType.FormattingEnabled = true;
this.CmbBannerType.Items.AddRange(new object[] {
resources.GetString("CmbBannerType.Items"),
resources.GetString("CmbBannerType.Items1"),
resources.GetString("CmbBannerType.Items2")});
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.Name = "CmbBannerType";
//
// LblSortIdTip
@ -397,8 +389,8 @@ namespace GrasscutterTools.Forms
//
// NUDBasePurpleWeight
//
resources.ApplyResources(this.NUDBasePurpleWeight, "NUDBasePurpleWeight");
this.NUDBasePurpleWeight.DecimalPlaces = 2;
resources.ApplyResources(this.NUDBasePurpleWeight, "NUDBasePurpleWeight");
this.NUDBasePurpleWeight.Name = "NUDBasePurpleWeight";
this.NUDBasePurpleWeight.Value = new decimal(new int[] {
51,
@ -455,8 +447,8 @@ namespace GrasscutterTools.Forms
//
// ListPurplePool
//
resources.ApplyResources(this.ListPurplePool, "ListPurplePool");
this.ListPurplePool.CheckOnClick = true;
resources.ApplyResources(this.ListPurplePool, "ListPurplePool");
this.ListPurplePool.FormattingEnabled = true;
this.ListPurplePool.Name = "ListPurplePool";
this.ListPurplePool.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ListPurplePool_ItemCheck);
@ -470,8 +462,8 @@ namespace GrasscutterTools.Forms
//
// ListYellowPool
//
resources.ApplyResources(this.ListYellowPool, "ListYellowPool");
this.ListYellowPool.CheckOnClick = true;
resources.ApplyResources(this.ListYellowPool, "ListYellowPool");
this.ListYellowPool.FormattingEnabled = true;
this.ListYellowPool.Name = "ListYellowPool";
this.ListYellowPool.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ListYellowPool_ItemCheck);
@ -583,6 +575,5 @@ namespace GrasscutterTools.Forms
private System.Windows.Forms.Button BtnGen;
private System.Windows.Forms.Button BtnParse;
private System.Windows.Forms.ComboBox CmbPrefab;
private System.Windows.Forms.Label LblBannerEditorOldTip;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,493 @@

namespace GrasscutterTools.Forms
{
partial class FormGachaBannerEditor2
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannerEditor2));
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.CmbPrefab = new System.Windows.Forms.ComboBox();
this.LblEventChance5Tip = new System.Windows.Forms.Label();
this.NUDEventChance5 = new System.Windows.Forms.NumericUpDown();
this.LblGachaType = new System.Windows.Forms.Label();
this.LblEventChance5 = new System.Windows.Forms.Label();
this.LblSortId = new System.Windows.Forms.Label();
this.NUDGachaType = new System.Windows.Forms.NumericUpDown();
this.NUDSortId = new System.Windows.Forms.NumericUpDown();
this.LblGachaTypeTip = new System.Windows.Forms.Label();
this.LblEndTime = new System.Windows.Forms.Label();
this.LblScheduleId = new System.Windows.Forms.Label();
this.LblBeginTime = new System.Windows.Forms.Label();
this.NUDScheduleId = new System.Windows.Forms.NumericUpDown();
this.NUDEndTime = new System.Windows.Forms.NumericUpDown();
this.LblScheduleIdTip = new System.Windows.Forms.Label();
this.NUDBeginTime = new System.Windows.Forms.NumericUpDown();
this.CmbBannerType = new System.Windows.Forms.ComboBox();
this.LblSortIdTip = new System.Windows.Forms.Label();
this.LblBannerType = new System.Windows.Forms.Label();
this.RbCostItem224 = new System.Windows.Forms.RadioButton();
this.LblCostItem = new System.Windows.Forms.Label();
this.LblPrefabPath = new System.Windows.Forms.Label();
this.RbCostItem223 = new System.Windows.Forms.RadioButton();
this.GrpPurplePool = new System.Windows.Forms.GroupBox();
this.GrpYellowPool = new System.Windows.Forms.GroupBox();
this.GrpJson = new System.Windows.Forms.GroupBox();
this.BtnGen = new System.Windows.Forms.Button();
this.TxtJson = new System.Windows.Forms.TextBox();
this.BtnParse = new System.Windows.Forms.Button();
this.treeView1 = new System.Windows.Forms.TreeView();
this.treeView2 = new System.Windows.Forms.TreeView();
this.LblEventChance4 = new System.Windows.Forms.Label();
this.NUDEventChance4 = new System.Windows.Forms.NumericUpDown();
this.LblEventChance4Tip = new System.Windows.Forms.Label();
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.GrpWeights = new System.Windows.Forms.GroupBox();
this.GrpBannerValues.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginTime)).BeginInit();
this.GrpPurplePool.SuspendLayout();
this.GrpYellowPool.SuspendLayout();
this.GrpJson.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
this.tabControl1.SuspendLayout();
this.GrpWeights.SuspendLayout();
this.SuspendLayout();
//
// GrpBannerValues
//
this.GrpBannerValues.Controls.Add(this.CmbPrefab);
this.GrpBannerValues.Controls.Add(this.LblEventChance4Tip);
this.GrpBannerValues.Controls.Add(this.LblEventChance5Tip);
this.GrpBannerValues.Controls.Add(this.NUDEventChance4);
this.GrpBannerValues.Controls.Add(this.NUDEventChance5);
this.GrpBannerValues.Controls.Add(this.LblGachaType);
this.GrpBannerValues.Controls.Add(this.LblEventChance4);
this.GrpBannerValues.Controls.Add(this.LblEventChance5);
this.GrpBannerValues.Controls.Add(this.LblSortId);
this.GrpBannerValues.Controls.Add(this.NUDGachaType);
this.GrpBannerValues.Controls.Add(this.NUDSortId);
this.GrpBannerValues.Controls.Add(this.LblGachaTypeTip);
this.GrpBannerValues.Controls.Add(this.LblEndTime);
this.GrpBannerValues.Controls.Add(this.LblScheduleId);
this.GrpBannerValues.Controls.Add(this.LblBeginTime);
this.GrpBannerValues.Controls.Add(this.NUDScheduleId);
this.GrpBannerValues.Controls.Add(this.NUDEndTime);
this.GrpBannerValues.Controls.Add(this.LblScheduleIdTip);
this.GrpBannerValues.Controls.Add(this.NUDBeginTime);
this.GrpBannerValues.Controls.Add(this.CmbBannerType);
this.GrpBannerValues.Controls.Add(this.LblSortIdTip);
this.GrpBannerValues.Controls.Add(this.LblBannerType);
this.GrpBannerValues.Controls.Add(this.RbCostItem224);
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;
//
// CmbPrefab
//
this.CmbPrefab.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbPrefab.FormattingEnabled = true;
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.Name = "CmbPrefab";
//
// LblEventChance5Tip
//
resources.ApplyResources(this.LblEventChance5Tip, "LblEventChance5Tip");
this.LblEventChance5Tip.Name = "LblEventChance5Tip";
//
// NUDEventChance5
//
resources.ApplyResources(this.NUDEventChance5, "NUDEventChance5");
this.NUDEventChance5.Name = "NUDEventChance5";
this.NUDEventChance5.Value = new decimal(new int[] {
50,
0,
0,
0});
//
// LblGachaType
//
resources.ApplyResources(this.LblGachaType, "LblGachaType");
this.LblGachaType.Name = "LblGachaType";
//
// LblEventChance5
//
resources.ApplyResources(this.LblEventChance5, "LblEventChance5");
this.LblEventChance5.Name = "LblEventChance5";
//
// LblSortId
//
resources.ApplyResources(this.LblSortId, "LblSortId");
this.LblSortId.Name = "LblSortId";
//
// NUDGachaType
//
resources.ApplyResources(this.NUDGachaType, "NUDGachaType");
this.NUDGachaType.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDGachaType.Name = "NUDGachaType";
this.NUDGachaType.Value = new decimal(new int[] {
400,
0,
0,
0});
//
// NUDSortId
//
resources.ApplyResources(this.NUDSortId, "NUDSortId");
this.NUDSortId.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.NUDSortId.Minimum = new decimal(new int[] {
1000,
0,
0,
0});
this.NUDSortId.Name = "NUDSortId";
this.NUDSortId.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// LblGachaTypeTip
//
resources.ApplyResources(this.LblGachaTypeTip, "LblGachaTypeTip");
this.LblGachaTypeTip.Name = "LblGachaTypeTip";
//
// LblEndTime
//
resources.ApplyResources(this.LblEndTime, "LblEndTime");
this.LblEndTime.Name = "LblEndTime";
//
// LblScheduleId
//
resources.ApplyResources(this.LblScheduleId, "LblScheduleId");
this.LblScheduleId.Name = "LblScheduleId";
//
// LblBeginTime
//
resources.ApplyResources(this.LblBeginTime, "LblBeginTime");
this.LblBeginTime.Name = "LblBeginTime";
//
// NUDScheduleId
//
resources.ApplyResources(this.NUDScheduleId, "NUDScheduleId");
this.NUDScheduleId.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDScheduleId.Name = "NUDScheduleId";
this.NUDScheduleId.Value = new decimal(new int[] {
800,
0,
0,
0});
//
// NUDEndTime
//
resources.ApplyResources(this.NUDEndTime, "NUDEndTime");
this.NUDEndTime.Maximum = new decimal(new int[] {
1924992000,
0,
0,
0});
this.NUDEndTime.Name = "NUDEndTime";
this.NUDEndTime.Value = new decimal(new int[] {
1924992000,
0,
0,
0});
//
// LblScheduleIdTip
//
resources.ApplyResources(this.LblScheduleIdTip, "LblScheduleIdTip");
this.LblScheduleIdTip.Name = "LblScheduleIdTip";
//
// NUDBeginTime
//
resources.ApplyResources(this.NUDBeginTime, "NUDBeginTime");
this.NUDBeginTime.Maximum = new decimal(new int[] {
1924992000,
0,
0,
0});
this.NUDBeginTime.Name = "NUDBeginTime";
//
// CmbBannerType
//
this.CmbBannerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbBannerType.FormattingEnabled = true;
this.CmbBannerType.Items.AddRange(new object[] {
resources.GetString("CmbBannerType.Items"),
resources.GetString("CmbBannerType.Items1"),
resources.GetString("CmbBannerType.Items2")});
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.Name = "CmbBannerType";
//
// LblSortIdTip
//
resources.ApplyResources(this.LblSortIdTip, "LblSortIdTip");
this.LblSortIdTip.Name = "LblSortIdTip";
//
// LblBannerType
//
resources.ApplyResources(this.LblBannerType, "LblBannerType");
this.LblBannerType.Name = "LblBannerType";
//
// RbCostItem224
//
resources.ApplyResources(this.RbCostItem224, "RbCostItem224");
this.RbCostItem224.Checked = true;
this.RbCostItem224.Name = "RbCostItem224";
this.RbCostItem224.TabStop = true;
this.RbCostItem224.UseVisualStyleBackColor = true;
//
// LblCostItem
//
resources.ApplyResources(this.LblCostItem, "LblCostItem");
this.LblCostItem.Name = "LblCostItem";
//
// LblPrefabPath
//
resources.ApplyResources(this.LblPrefabPath, "LblPrefabPath");
this.LblPrefabPath.Name = "LblPrefabPath";
//
// RbCostItem223
//
resources.ApplyResources(this.RbCostItem223, "RbCostItem223");
this.RbCostItem223.Name = "RbCostItem223";
this.RbCostItem223.TabStop = true;
this.RbCostItem223.UseVisualStyleBackColor = true;
//
// GrpPurplePool
//
resources.ApplyResources(this.GrpPurplePool, "GrpPurplePool");
this.GrpPurplePool.Controls.Add(this.treeView1);
this.GrpPurplePool.Name = "GrpPurplePool";
this.GrpPurplePool.TabStop = false;
//
// GrpYellowPool
//
resources.ApplyResources(this.GrpYellowPool, "GrpYellowPool");
this.GrpYellowPool.Controls.Add(this.treeView2);
this.GrpYellowPool.Name = "GrpYellowPool";
this.GrpYellowPool.TabStop = false;
//
// GrpJson
//
resources.ApplyResources(this.GrpJson, "GrpJson");
this.GrpJson.Controls.Add(this.BtnGen);
this.GrpJson.Controls.Add(this.TxtJson);
this.GrpJson.Controls.Add(this.BtnParse);
this.GrpJson.Name = "GrpJson";
this.GrpJson.TabStop = false;
//
// BtnGen
//
resources.ApplyResources(this.BtnGen, "BtnGen");
this.BtnGen.Name = "BtnGen";
this.BtnGen.UseVisualStyleBackColor = true;
this.BtnGen.Click += new System.EventHandler(this.BtnGen_Click);
//
// TxtJson
//
resources.ApplyResources(this.TxtJson, "TxtJson");
this.TxtJson.Name = "TxtJson";
//
// BtnParse
//
resources.ApplyResources(this.BtnParse, "BtnParse");
this.BtnParse.Name = "BtnParse";
this.BtnParse.UseVisualStyleBackColor = true;
this.BtnParse.Click += new System.EventHandler(this.BtnParse_Click);
//
// treeView1
//
resources.ApplyResources(this.treeView1, "treeView1");
this.treeView1.Name = "treeView1";
//
// treeView2
//
resources.ApplyResources(this.treeView2, "treeView2");
this.treeView2.Name = "treeView2";
//
// LblEventChance4
//
resources.ApplyResources(this.LblEventChance4, "LblEventChance4");
this.LblEventChance4.Name = "LblEventChance4";
//
// NUDEventChance4
//
resources.ApplyResources(this.NUDEventChance4, "NUDEventChance4");
this.NUDEventChance4.Name = "NUDEventChance4";
this.NUDEventChance4.Value = new decimal(new int[] {
50,
0,
0,
0});
//
// LblEventChance4Tip
//
resources.ApplyResources(this.LblEventChance4Tip, "LblEventChance4Tip");
this.LblEventChance4Tip.Name = "LblEventChance4Tip";
//
// chart1
//
chartArea3.Name = "ChartArea1";
this.chart1.ChartAreas.Add(chartArea3);
legend3.Name = "Legend1";
this.chart1.Legends.Add(legend3);
resources.ApplyResources(this.chart1, "chart1");
this.chart1.Name = "chart1";
series3.ChartArea = "ChartArea1";
series3.Legend = "Legend1";
series3.Name = "Series1";
this.chart1.Series.Add(series3);
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
resources.ApplyResources(this.tabControl1, "tabControl1");
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
//
// tabPage1
//
resources.ApplyResources(this.tabPage1, "tabPage1");
this.tabPage1.Name = "tabPage1";
this.tabPage1.UseVisualStyleBackColor = true;
//
// tabPage2
//
resources.ApplyResources(this.tabPage2, "tabPage2");
this.tabPage2.Name = "tabPage2";
this.tabPage2.UseVisualStyleBackColor = true;
//
// GrpWeights
//
resources.ApplyResources(this.GrpWeights, "GrpWeights");
this.GrpWeights.Controls.Add(this.tabControl1);
this.GrpWeights.Controls.Add(this.chart1);
this.GrpWeights.Name = "GrpWeights";
this.GrpWeights.TabStop = false;
//
// FormGachaBannerEditor2
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.GrpWeights);
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.Name = "FormGachaBannerEditor2";
this.GrpBannerValues.ResumeLayout(false);
this.GrpBannerValues.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginTime)).EndInit();
this.GrpPurplePool.ResumeLayout(false);
this.GrpYellowPool.ResumeLayout(false);
this.GrpJson.ResumeLayout(false);
this.GrpJson.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
this.tabControl1.ResumeLayout(false);
this.GrpWeights.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox GrpBannerValues;
private System.Windows.Forms.Label LblEventChance5Tip;
private System.Windows.Forms.NumericUpDown NUDEventChance5;
private System.Windows.Forms.Label LblGachaType;
private System.Windows.Forms.Label LblEventChance5;
private System.Windows.Forms.Label LblSortId;
private System.Windows.Forms.NumericUpDown NUDGachaType;
private System.Windows.Forms.NumericUpDown NUDSortId;
private System.Windows.Forms.Label LblGachaTypeTip;
private System.Windows.Forms.Label LblEndTime;
private System.Windows.Forms.Label LblScheduleId;
private System.Windows.Forms.Label LblBeginTime;
private System.Windows.Forms.NumericUpDown NUDScheduleId;
private System.Windows.Forms.NumericUpDown NUDEndTime;
private System.Windows.Forms.Label LblScheduleIdTip;
private System.Windows.Forms.NumericUpDown NUDBeginTime;
private System.Windows.Forms.ComboBox CmbBannerType;
private System.Windows.Forms.Label LblSortIdTip;
private System.Windows.Forms.Label LblBannerType;
private System.Windows.Forms.RadioButton RbCostItem224;
private System.Windows.Forms.Label LblCostItem;
private System.Windows.Forms.Label LblPrefabPath;
private System.Windows.Forms.RadioButton RbCostItem223;
private System.Windows.Forms.GroupBox GrpPurplePool;
private System.Windows.Forms.GroupBox GrpYellowPool;
private System.Windows.Forms.GroupBox GrpJson;
private System.Windows.Forms.TextBox TxtJson;
private System.Windows.Forms.Button BtnGen;
private System.Windows.Forms.Button BtnParse;
private System.Windows.Forms.ComboBox CmbPrefab;
private System.Windows.Forms.Label LblEventChance4;
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.TreeView treeView2;
private System.Windows.Forms.Label LblEventChance4Tip;
private System.Windows.Forms.NumericUpDown NUDEventChance4;
private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.GroupBox GrpWeights;
}
}

View File

@ -0,0 +1,184 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GrasscutterTools.Game;
using GrasscutterTools.Game.Gacha;
using GrasscutterTools.Properties;
using Newtonsoft.Json;
namespace GrasscutterTools.Forms
{
/// <summary>
/// 卡池编辑器
/// </summary>
public partial class FormGachaBannerEditor2 : Form
{
#region - -
public FormGachaBannerEditor2()
{
InitializeComponent();
Icon = Resources.IconGrasscutter;
CmbBannerType.SelectedIndex = 0;
InitBannerPrefab();
InitCheckedListBoxs();
}
private void InitBannerPrefab()
{
CmbPrefab.Items.Clear();
CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names);
}
private void InitCheckedListBoxs()
{
// TODO
}
//private void InitCheckedListBox(CheckedListBox list, string color)
//{
// var kvs = new List<string>();
// for (int i = 0; i < GameData.AvatarColors.Count; i++)
// {
// if (GameData.AvatarColors.Names[i] == color)
// {
// var id = GameData.AvatarColors.Ids[i];
// var index = Array.IndexOf(GameData.Avatars.Ids, id % 1000 + 10000000);
// if (index >= 0)
// kvs.Add($"{id}:{GameData.Avatars.Names[index]}");
// }
// }
// for (int i = 0; i < GameData.WeaponColors.Count; i++)
// {
// if (GameData.WeaponColors.Names[i] == color)
// {
// var id = GameData.WeaponColors.Ids[i];
// var index = Array.IndexOf(GameData.Weapons.Ids, id);
// if (index >= 0)
// kvs.Add($"{id}:{GameData.Weapons.Names[index]}");
// }
// }
// list.Items.AddRange(kvs.ToArray());
//}
private void InitRateUpItems(GachaBanner2 banner)
{
// TODO
}
#endregion - -
#region - UI -
private void ShowBanner(GachaBanner2 banner)
{
try
{
NUDGachaType.Value = banner.GachaType;
NUDScheduleId.Value = banner.ScheduleId;
CmbBannerType.SelectedIndex = (int)banner.BannerType;
if (string.IsNullOrEmpty(banner.TitlePath) || !int.TryParse(banner.TitlePath.Substring("UI_GACHA_SHOW_PANEL_A".Length, 3), out int prefabId))
CmbPrefab.SelectedIndex = -1;
else
CmbPrefab.SelectedIndex = Array.IndexOf(GameData.GachaBannerPrefabs.Ids, prefabId);
RbCostItem224.Checked = banner.CostItem == 224;
RbCostItem223.Checked = banner.CostItem == 223;
NUDBeginTime.Value = banner.BeginTime;
NUDEndTime.Value = banner.EndTime;
NUDSortId.Value = banner.SortId;
NUDEventChance5.Value = banner.EventChance5;
NUDEventChance4.Value = banner.EventChance4;
InitRateUpItems(banner);
}
catch (Exception ex)
{
MessageBox.Show("UI更新失败" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private GachaBanner2 ParseBanner()
{
if (CmbBannerType.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池类型", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
if (CmbPrefab.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池预制", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex];
var banner = new GachaBanner2
{
GachaType = (int)NUDGachaType.Value,
ScheduleId = (int)NUDScheduleId.Value,
BannerType = (BannerType)CmbBannerType.SelectedIndex,
PrefabPath = $"GachaShowPanel_A{prefabId:000}",
PreviewPrefabPath = $"UI_Tab_GachaShowPanel_A{prefabId:000}",
TitlePath = $"UI_GACHA_SHOW_PANEL_A{prefabId:000}_TITLE",
CostItem = RbCostItem224.Checked ? 224 : 223,
BeginTime = (int)NUDBeginTime.Value,
EndTime = (int)NUDEndTime.Value,
SortId = (int)NUDSortId.Value,
EventChance5 = (int)NUDEventChance5.Value,
EventChance4 = (int)NUDEventChance4.Value,
};
return banner;
}
#endregion - UI -
#region - -
private void BtnGen_Click(object sender, EventArgs e)
{
var banner = ParseBanner();
if (banner != null)
{
TxtJson.Text = JsonConvert.SerializeObject(banner, Formatting.Indented);
}
}
private void BtnParse_Click(object sender, EventArgs e)
{
try
{
ShowBanner(JsonConvert.DeserializeObject<GachaBanner2>(TxtJson.Text));
}
catch (Exception ex)
{
MessageBox.Show("Json解析失败错误消息" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion - -
}
}

View File

@ -0,0 +1,332 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblBannerEditorOldTip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblBannerEditorOldTip.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 415</value>
</data>
<data name="LblBannerEditorOldTip.Size" type="System.Drawing.Size, System.Drawing">
<value>390, 35</value>
</data>
<data name="LblBannerEditorOldTip.Text" xml:space="preserve">
<value>Tip: The latest version of the dev Banner is currently not supported, waiting for PR : )</value>
</data>
<data name="LblEventChanceTip.Location" type="System.Drawing.Point, System.Drawing">
<value>401, 262</value>
</data>
<data name="NUDEventChance.Location" type="System.Drawing.Point, System.Drawing">
<value>332, 260</value>
</data>
<data name="LblEventChance.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblEventChance.Text" xml:space="preserve">
<value>Event chance</value>
</data>
<data name="LblSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 204</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>Sort</value>
</data>
<data name="LblBaseYellowWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 262</value>
</data>
<data name="LblBaseYellowWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblBaseYellowWeight.Text" xml:space="preserve">
<value>5 star weight</value>
</data>
<data name="LblRateUpItems2.Location" type="System.Drawing.Point, System.Drawing">
<value>44, 350</value>
</data>
<data name="LblRateUpItems2.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value>
</data>
<data name="LblRateUpItems2.Text" xml:space="preserve">
<value>4 star UP</value>
</data>
<data name="LblSoftPity.Location" type="System.Drawing.Point, System.Drawing">
<value>49, 291</value>
</data>
<data name="LblSoftPity.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 17</value>
</data>
<data name="LblSoftPity.Text" xml:space="preserve">
<value>Soft pity</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>123, 17</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>Increment from 400</value>
</data>
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>End Time</value>
</data>
<data name="LblRateUpItems1.Location" type="System.Drawing.Point, System.Drawing">
<value>44, 234</value>
</data>
<data name="LblRateUpItems1.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value>
</data>
<data name="LblRateUpItems1.Text" xml:space="preserve">
<value>5 star UP</value>
</data>
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>32, 175</value>
</data>
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 17</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>Begin Time</value>
</data>
<data name="LblHardPity.Location" type="System.Drawing.Point, System.Drawing">
<value>42, 320</value>
</data>
<data name="LblHardPity.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblHardPity.Text" xml:space="preserve">
<value>Hard pity</value>
</data>
<data name="NUDEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>287, 174</value>
</data>
<data name="LblHardPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblHardPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 17</value>
</data>
<data name="LblScheduleIdTip.Text" xml:space="preserve">
<value>Unique</value>
</data>
<data name="LblSoftPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblSoftPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblBasePurpleWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 378</value>
</data>
<data name="LblBasePurpleWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblBasePurpleWeight.Text" xml:space="preserve">
<value>4 star weight</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Standard Wish</value>
</data>
<data name="CmbBannerType.Items1" xml:space="preserve">
<value>Character Event Wish</value>
</data>
<data name="CmbBannerType.Items2" xml:space="preserve">
<value>Weapon Event Wish</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Show order</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 87</value>
</data>
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>Banner Type</value>
</data>
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 21</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>Acquaint Fate</value>
</data>
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
<value>41, 148</value>
</data>
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 17</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>Cost Item</value>
</data>
<data name="LblPrefabPath.Location" type="System.Drawing.Point, System.Drawing">
<value>59, 118</value>
</data>
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>Prefab</value>
</data>
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
<value>222, 146</value>
</data>
<data name="RbCostItem223.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 21</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>Intertwined Fate</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Banner</value>
</data>
<data name="GrpPurplePool.Text" xml:space="preserve">
<value>4 star pool</value>
</data>
<data name="GrpYellowPool.Text" xml:space="preserve">
<value>5 star pool</value>
</data>
<data name="BtnGen.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnGen.Text" xml:space="preserve">
<value>Gen Json</value>
</data>
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 437</value>
</data>
<data name="BtnParse.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnParse.Text" xml:space="preserve">
<value>Parse Json</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Gacha Banner Editor</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblBannerEditorOldTip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblBannerEditorOldTip.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 415</value>
</data>
<data name="LblBannerEditorOldTip.Size" type="System.Drawing.Size, System.Drawing">
<value>390, 35</value>
</data>
<data name="LblBannerEditorOldTip.Text" xml:space="preserve">
<value>Совет: Последняя версия баннера разрабатывается в настоящее время не поддерживается, ждем PR : )</value>
</data>
<data name="LblEventChanceTip.Location" type="System.Drawing.Point, System.Drawing">
<value>401, 262</value>
</data>
<data name="NUDEventChance.Location" type="System.Drawing.Point, System.Drawing">
<value>336, 260</value>
</data>
<data name="LblGachaType.Location" type="System.Drawing.Point, System.Drawing">
<value>43, 28</value>
</data>
<data name="LblGachaType.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
</data>
<data name="LblGachaType.Text" xml:space="preserve">
<value>Тип Гачи</value>
</data>
<data name="LblEventChance.Location" type="System.Drawing.Point, System.Drawing">
<value>238, 262</value>
</data>
<data name="LblEventChance.Size" type="System.Drawing.Size, System.Drawing">
<value>96, 17</value>
</data>
<data name="LblEventChance.Text" xml:space="preserve">
<value>Шанс события</value>
</data>
<data name="LblSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 204</value>
</data>
<data name="LblSortId.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 17</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>Сорт.</value>
</data>
<data name="LblBaseYellowWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 262</value>
</data>
<data name="LblBaseYellowWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>93, 17</value>
</data>
<data name="LblBaseYellowWeight.Text" xml:space="preserve">
<value>5-звездочный</value>
</data>
<data name="LblRateUpItems2.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 350</value>
</data>
<data name="LblRateUpItems2.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="LblRateUpItems2.Text" xml:space="preserve">
<value>4 звезды UP</value>
</data>
<data name="LblSoftPity.Location" type="System.Drawing.Point, System.Drawing">
<value>27, 291</value>
</data>
<data name="LblSoftPity.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 17</value>
</data>
<data name="LblSoftPity.Text" xml:space="preserve">
<value>Мяг. гарант</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 17</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>Увеличение с 400</value>
</data>
<data name="LblEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>234, 176</value>
</data>
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 17</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>Конец</value>
</data>
<data name="LblRateUpItems1.Location" type="System.Drawing.Point, System.Drawing">
<value>51, 234</value>
</data>
<data name="LblRateUpItems1.Size" type="System.Drawing.Size, System.Drawing">
<value>55, 17</value>
</data>
<data name="LblRateUpItems1.Text" xml:space="preserve">
<value>5 зв. UP</value>
</data>
<data name="LblScheduleId.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 57</value>
</data>
<data name="LblScheduleId.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 17</value>
</data>
<data name="LblScheduleId.Text" xml:space="preserve">
<value>ID расписания</value>
</data>
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>53, 176</value>
</data>
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 17</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>Начало</value>
</data>
<data name="LblHardPity.Location" type="System.Drawing.Point, System.Drawing">
<value>21, 320</value>
</data>
<data name="LblHardPity.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 17</value>
</data>
<data name="LblHardPity.Text" xml:space="preserve">
<value>Жест. Гарант</value>
</data>
<data name="NUDEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>287, 174</value>
</data>
<data name="LblHardPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblHardPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 17</value>
</data>
<data name="LblScheduleIdTip.Text" xml:space="preserve">
<value>Уникальный</value>
</data>
<data name="LblSoftPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblSoftPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblBasePurpleWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>29, 378</value>
</data>
<data name="LblBasePurpleWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>77, 17</value>
</data>
<data name="LblBasePurpleWeight.Text" xml:space="preserve">
<value>4 звездный</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Стандартная Молитва</value>
</data>
<data name="CmbBannerType.Items1" xml:space="preserve">
<value>Молитва события персонажа</value>
</data>
<data name="CmbBannerType.Items2" xml:space="preserve">
<value>Молитва события с оружием</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>101, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Показать заказ</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 87</value>
</data>
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 17</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>Тип баннера</value>
</data>
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 21</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>Судьбоносные</value>
</data>
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
<value>34, 148</value>
</data>
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 17</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>Стоимость</value>
</data>
<data name="LblPrefabPath.Location" type="System.Drawing.Point, System.Drawing">
<value>47, 118</value>
</data>
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>Готовый</value>
</data>
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
<value>234, 146</value>
</data>
<data name="RbCostItem223.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 21</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>Переплетающиеся</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Баннеп</value>
</data>
<data name="GrpPurplePool.Text" xml:space="preserve">
<value>4 звёздочный пул</value>
</data>
<data name="GrpYellowPool.Text" xml:space="preserve">
<value>5 звёздочный пул</value>
</data>
<data name="BtnGen.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnGen.Text" xml:space="preserve">
<value>Сген. Json</value>
</data>
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 437</value>
</data>
<data name="BtnParse.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnParse.Text" xml:space="preserve">
<value>Загр.Json</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Редактор баннеров Gacha</value>
</data>
</root>

View File

@ -162,35 +162,35 @@ namespace GrasscutterTools.Forms
#region - -
private FormGachaBannerEditor FormGachaBannerEditor;
private Form GachaBannerEditor;
private void BtnOpenGachaBannerEditor_Click(object sender, EventArgs e)
{
if (FormGachaBannerEditor == null || FormGachaBannerEditor.IsDisposed)
if (GachaBannerEditor == null || GachaBannerEditor.IsDisposed)
{
FormGachaBannerEditor = new FormGachaBannerEditor();
FormGachaBannerEditor.Show();
GachaBannerEditor = new FormGachaBannerEditor2();
GachaBannerEditor.Show();
}
else
{
FormGachaBannerEditor.TopMost = true;
FormGachaBannerEditor.TopMost = false;
GachaBannerEditor.TopMost = true;
GachaBannerEditor.TopMost = false;
}
}
private FormTextMapBrowser FormTextMapBrowser;
private FormTextMapBrowser TextMapBrowser;
private void BtnOpenTextMap_Click(object sender, EventArgs e)
{
if (FormTextMapBrowser == null || FormTextMapBrowser.IsDisposed)
if (TextMapBrowser == null || TextMapBrowser.IsDisposed)
{
FormTextMapBrowser = new FormTextMapBrowser();
FormTextMapBrowser.Show();
TextMapBrowser = new FormTextMapBrowser();
TextMapBrowser.Show();
}
else
{
FormTextMapBrowser.TopMost = true;
FormTextMapBrowser.TopMost = false;
TextMapBrowser.TopMost = true;
TextMapBrowser.TopMost = false;
}
}

View File

@ -90,13 +90,13 @@ namespace GrasscutterTools.Game.Gacha
/// 4星的up角色或物品
/// </summary>
[JsonProperty("rateUpItems4")]
public int[] RateUpItems4 { get; set; }
public int[] RateUpItems4 { get; set; } = { };
/// <summary>
/// 5星的up物品或者角色
/// </summary>
[JsonProperty("rateUpItems5")]
public int[] RateUpItems5 { get; set; }
public int[] RateUpItems5 { get; set; } = { };
/// <summary>
/// 3星普通池

View File

@ -180,6 +180,7 @@
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@ -197,6 +198,12 @@
<ItemGroup>
<Compile Include="DispatchServer\DispatchServerAPI.cs" />
<Compile Include="DispatchServer\Model\ServerStatus.cs" />
<Compile Include="Forms\FormGachaBannerEditor2.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormGachaBannerEditor2.Designer.cs">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormGachaBannerEditor.cs">
<SubType>Form</SubType>
</Compile>
@ -229,6 +236,15 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utils\HttpHelper.cs" />
<EmbeddedResource Include="Forms\FormGachaBannerEditor2.en-us.resx">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannerEditor2.resx">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannerEditor2.ru-ru.resx">
<DependentUpon>FormGachaBannerEditor2.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormGachaBannerEditor.en-us.resx">
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
</EmbeddedResource>