From 02c4c9a2ef5750f2c4e976af7ae36e167f783d29 Mon Sep 17 00:00:00 2001 From: brotalnia Date: Fri, 14 Dec 2018 01:42:10 +0200 Subject: [PATCH] Finished work on the condition editor. --- .../FormConditionFinder.Designer.cs | 500 ++++++++++++++++-- .../DataFinderForms/FormConditionFinder.cs | 349 +++++++++++- .../DataFinderForms/FormConditionFinder.resx | 257 +++++++++ .../FormDataFinder.Designer.cs | 10 +- .../DataFinderForms/FormDataFinder.cs | 4 + ScriptEditor/Form1.Designer.cs | 21 +- ScriptEditor/Form1.cs | 19 + ScriptEditor/FormScriptEditor.cs | 2 +- ScriptEditor/GameData.cs | 12 +- ScriptEditor/Properties/AssemblyInfo.cs | 4 +- ScriptEditor/Properties/Resources.Designer.cs | 20 + ScriptEditor/Properties/Resources.resx | 6 + .../Resources/condition_editor_button.png | Bin 0 -> 6182 bytes .../condition_editor_button_black.png | Bin 0 -> 4233 bytes ScriptEditor/Resources/conditions.ico | Bin 0 -> 15086 bytes ScriptEditor/ScriptEditor.csproj | 6 + 16 files changed, 1160 insertions(+), 50 deletions(-) create mode 100644 ScriptEditor/Resources/condition_editor_button.png create mode 100644 ScriptEditor/Resources/condition_editor_button_black.png create mode 100644 ScriptEditor/Resources/conditions.ico diff --git a/ScriptEditor/DataFinderForms/FormConditionFinder.Designer.cs b/ScriptEditor/DataFinderForms/FormConditionFinder.Designer.cs index ccb8e5c..bf41054 100644 --- a/ScriptEditor/DataFinderForms/FormConditionFinder.Designer.cs +++ b/ScriptEditor/DataFinderForms/FormConditionFinder.Designer.cs @@ -28,6 +28,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormConditionFinder)); this.columnType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnValue1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnValue2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); @@ -128,12 +129,46 @@ private void InitializeComponent() this.lblContentPatch = new System.Windows.Forms.Label(); this.lblConditionContentPatchTooltip = new System.Windows.Forms.Label(); this.frmConditionEscort = new System.Windows.Forms.Panel(); + this.chkEscortTargetDead = new System.Windows.Forms.CheckBox(); + this.chkEscortSourceDead = new System.Windows.Forms.CheckBox(); + this.txtEscortDistance = new System.Windows.Forms.TextBox(); this.lblEscortDistance = new System.Windows.Forms.Label(); this.lblEscortFlags = new System.Windows.Forms.Label(); this.lblConditionEscortTooltip = new System.Windows.Forms.Label(); - this.txtEscortDistance = new System.Windows.Forms.TextBox(); - this.chkEscortSourceDead = new System.Windows.Forms.CheckBox(); - this.chkEscortTargetDead = new System.Windows.Forms.CheckBox(); + this.frmConditionInstanceData = new System.Windows.Forms.Panel(); + this.txtInstanceDataValue = new System.Windows.Forms.TextBox(); + this.lblInstanceDataValue = new System.Windows.Forms.Label(); + this.txtInstanceDataIndex = new System.Windows.Forms.TextBox(); + this.cmbInstanceDataComparison = new System.Windows.Forms.ComboBox(); + this.lblInstanceDataComparison = new System.Windows.Forms.Label(); + this.lblInstanceDataIndex = new System.Windows.Forms.Label(); + this.lblConditionInstanceDataTooltip = new System.Windows.Forms.Label(); + this.frmConditionMapEventData = new System.Windows.Forms.Panel(); + this.txtMapEventDataIndex = new System.Windows.Forms.TextBox(); + this.lblMapEventDataIndex = new System.Windows.Forms.Label(); + this.txtMapEventDataEventId = new System.Windows.Forms.TextBox(); + this.lvlMapEventDataEventId = new System.Windows.Forms.Label(); + this.txtMapEventDataValue = new System.Windows.Forms.TextBox(); + this.cmbMapEventDataComparison = new System.Windows.Forms.ComboBox(); + this.lblMapEventDataComparison = new System.Windows.Forms.Label(); + this.lblMapEventDataValue = new System.Windows.Forms.Label(); + this.lblConditionMapEventDataTooltip = new System.Windows.Forms.Label(); + this.frmConditionUnknown = new System.Windows.Forms.Panel(); + this.txtUnknownValue4 = new System.Windows.Forms.TextBox(); + this.txtUnknownValue2 = new System.Windows.Forms.TextBox(); + this.lblUnknownValue2 = new System.Windows.Forms.Label(); + this.txtUnknownValue1 = new System.Windows.Forms.TextBox(); + this.lblUnknownValue1 = new System.Windows.Forms.Label(); + this.txtUnknownValue3 = new System.Windows.Forms.TextBox(); + this.lblUnknownValue4 = new System.Windows.Forms.Label(); + this.lblUnknownValue3 = new System.Windows.Forms.Label(); + this.lblConditionUnknownTooltip = new System.Windows.Forms.Label(); + this.frmConditionMapEventTargets = new System.Windows.Forms.Panel(); + this.txtMapEventTargetsEventId = new System.Windows.Forms.TextBox(); + this.btnMapEventTargetsConditionId = new System.Windows.Forms.Button(); + this.lblMapEventTargetsConditionId = new System.Windows.Forms.Label(); + this.lblMapEventTargetsEventId = new System.Windows.Forms.Label(); + this.lblConditionMapEventTargetsTooltip = new System.Windows.Forms.Label(); this.frmConditionNot.SuspendLayout(); this.frmConditionAura.SuspendLayout(); this.frmConditionItem.SuspendLayout(); @@ -150,6 +185,10 @@ private void InitializeComponent() this.frmConditionNearbyObject.SuspendLayout(); this.frmConditionContentPatch.SuspendLayout(); this.frmConditionEscort.SuspendLayout(); + this.frmConditionInstanceData.SuspendLayout(); + this.frmConditionMapEventData.SuspendLayout(); + this.frmConditionUnknown.SuspendLayout(); + this.frmConditionMapEventTargets.SuspendLayout(); this.SuspendLayout(); // // lstData @@ -1188,6 +1227,36 @@ private void InitializeComponent() this.frmConditionEscort.TabIndex = 34; this.frmConditionEscort.Visible = false; // + // chkEscortTargetDead + // + this.chkEscortTargetDead.AutoSize = true; + this.chkEscortTargetDead.Location = new System.Drawing.Point(228, 72); + this.chkEscortTargetDead.Name = "chkEscortTargetDead"; + this.chkEscortTargetDead.Size = new System.Drawing.Size(119, 17); + this.chkEscortTargetDead.TabIndex = 18; + this.chkEscortTargetDead.Text = "Target must survive"; + this.chkEscortTargetDead.UseVisualStyleBackColor = true; + this.chkEscortTargetDead.CheckedChanged += new System.EventHandler(this.chkEscortTargetDead_CheckedChanged); + // + // chkEscortSourceDead + // + this.chkEscortSourceDead.AutoSize = true; + this.chkEscortSourceDead.Location = new System.Drawing.Point(100, 72); + this.chkEscortSourceDead.Name = "chkEscortSourceDead"; + this.chkEscortSourceDead.Size = new System.Drawing.Size(122, 17); + this.chkEscortSourceDead.TabIndex = 17; + this.chkEscortSourceDead.Text = "Source must survive"; + this.chkEscortSourceDead.UseVisualStyleBackColor = true; + this.chkEscortSourceDead.CheckedChanged += new System.EventHandler(this.chkEscortSourceDead_CheckedChanged); + // + // txtEscortDistance + // + this.txtEscortDistance.Location = new System.Drawing.Point(100, 101); + this.txtEscortDistance.Name = "txtEscortDistance"; + this.txtEscortDistance.Size = new System.Drawing.Size(536, 20); + this.txtEscortDistance.TabIndex = 16; + this.txtEscortDistance.Leave += new System.EventHandler(this.txtEscortDistance_Leave); + // // lblEscortDistance // this.lblEscortDistance.AutoSize = true; @@ -1216,40 +1285,354 @@ private void InitializeComponent() this.lblConditionEscortTooltip.Text = "Returns true when one of the requirements is not satisfied. This condition is use" + "d for escort quests."; // - // txtEscortDistance - // - this.txtEscortDistance.Location = new System.Drawing.Point(100, 101); - this.txtEscortDistance.Name = "txtEscortDistance"; - this.txtEscortDistance.Size = new System.Drawing.Size(536, 20); - this.txtEscortDistance.TabIndex = 16; - this.txtEscortDistance.Leave += new System.EventHandler(this.txtEscortDistance_Leave); - // - // chkEscortSourceDead - // - this.chkEscortSourceDead.AutoSize = true; - this.chkEscortSourceDead.Location = new System.Drawing.Point(100, 72); - this.chkEscortSourceDead.Name = "chkEscortSourceDead"; - this.chkEscortSourceDead.Size = new System.Drawing.Size(122, 17); - this.chkEscortSourceDead.TabIndex = 17; - this.chkEscortSourceDead.Text = "Source must survive"; - this.chkEscortSourceDead.UseVisualStyleBackColor = true; - this.chkEscortSourceDead.CheckedChanged += new System.EventHandler(this.chkEscortSourceDead_CheckedChanged); - // - // chkEscortTargetDead - // - this.chkEscortTargetDead.AutoSize = true; - this.chkEscortTargetDead.Location = new System.Drawing.Point(228, 72); - this.chkEscortTargetDead.Name = "chkEscortTargetDead"; - this.chkEscortTargetDead.Size = new System.Drawing.Size(119, 17); - this.chkEscortTargetDead.TabIndex = 18; - this.chkEscortTargetDead.Text = "Target must survive"; - this.chkEscortTargetDead.UseVisualStyleBackColor = true; - this.chkEscortTargetDead.CheckedChanged += new System.EventHandler(this.chkEscortTargetDead_CheckedChanged); + // frmConditionInstanceData + // + this.frmConditionInstanceData.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.frmConditionInstanceData.Controls.Add(this.txtInstanceDataValue); + this.frmConditionInstanceData.Controls.Add(this.lblInstanceDataValue); + this.frmConditionInstanceData.Controls.Add(this.txtInstanceDataIndex); + this.frmConditionInstanceData.Controls.Add(this.cmbInstanceDataComparison); + this.frmConditionInstanceData.Controls.Add(this.lblInstanceDataComparison); + this.frmConditionInstanceData.Controls.Add(this.lblInstanceDataIndex); + this.frmConditionInstanceData.Controls.Add(this.lblConditionInstanceDataTooltip); + this.frmConditionInstanceData.Location = new System.Drawing.Point(12, 212); + this.frmConditionInstanceData.Name = "frmConditionInstanceData"; + this.frmConditionInstanceData.Size = new System.Drawing.Size(650, 150); + this.frmConditionInstanceData.TabIndex = 35; + this.frmConditionInstanceData.Visible = false; + // + // txtInstanceDataValue + // + this.txtInstanceDataValue.Location = new System.Drawing.Point(100, 91); + this.txtInstanceDataValue.Name = "txtInstanceDataValue"; + this.txtInstanceDataValue.Size = new System.Drawing.Size(536, 20); + this.txtInstanceDataValue.TabIndex = 18; + this.txtInstanceDataValue.Leave += new System.EventHandler(this.txtInstanceDataValue_Leave); + // + // lblInstanceDataValue + // + this.lblInstanceDataValue.AutoSize = true; + this.lblInstanceDataValue.Location = new System.Drawing.Point(11, 96); + this.lblInstanceDataValue.Name = "lblInstanceDataValue"; + this.lblInstanceDataValue.Size = new System.Drawing.Size(37, 13); + this.lblInstanceDataValue.TabIndex = 17; + this.lblInstanceDataValue.Text = "Value:"; + // + // txtInstanceDataIndex + // + this.txtInstanceDataIndex.Location = new System.Drawing.Point(100, 65); + this.txtInstanceDataIndex.Name = "txtInstanceDataIndex"; + this.txtInstanceDataIndex.Size = new System.Drawing.Size(536, 20); + this.txtInstanceDataIndex.TabIndex = 16; + this.txtInstanceDataIndex.Leave += new System.EventHandler(this.txtInstanceDataIndex_Leave); + // + // cmbInstanceDataComparison + // + this.cmbInstanceDataComparison.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbInstanceDataComparison.FormattingEnabled = true; + this.cmbInstanceDataComparison.Items.AddRange(new object[] { + "==", + ">=", + "<="}); + this.cmbInstanceDataComparison.Location = new System.Drawing.Point(100, 117); + this.cmbInstanceDataComparison.Name = "cmbInstanceDataComparison"; + this.cmbInstanceDataComparison.Size = new System.Drawing.Size(536, 21); + this.cmbInstanceDataComparison.TabIndex = 15; + this.cmbInstanceDataComparison.SelectedIndexChanged += new System.EventHandler(this.cmbInstanceDataComparison_SelectedIndexChanged); + // + // lblInstanceDataComparison + // + this.lblInstanceDataComparison.AutoSize = true; + this.lblInstanceDataComparison.Location = new System.Drawing.Point(11, 122); + this.lblInstanceDataComparison.Name = "lblInstanceDataComparison"; + this.lblInstanceDataComparison.Size = new System.Drawing.Size(65, 13); + this.lblInstanceDataComparison.TabIndex = 2; + this.lblInstanceDataComparison.Text = "Comparison:"; + // + // lblInstanceDataIndex + // + this.lblInstanceDataIndex.AutoSize = true; + this.lblInstanceDataIndex.Location = new System.Drawing.Point(11, 70); + this.lblInstanceDataIndex.Name = "lblInstanceDataIndex"; + this.lblInstanceDataIndex.Size = new System.Drawing.Size(36, 13); + this.lblInstanceDataIndex.TabIndex = 1; + this.lblInstanceDataIndex.Text = "Index:"; + // + // lblConditionInstanceDataTooltip + // + this.lblConditionInstanceDataTooltip.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lblConditionInstanceDataTooltip.Location = new System.Drawing.Point(12, 8); + this.lblConditionInstanceDataTooltip.Name = "lblConditionInstanceDataTooltip"; + this.lblConditionInstanceDataTooltip.Size = new System.Drawing.Size(624, 42); + this.lblConditionInstanceDataTooltip.TabIndex = 0; + this.lblConditionInstanceDataTooltip.Text = "Returns true if the value in the specified instance data field fits the required " + + "criteria."; + // + // frmConditionMapEventData + // + this.frmConditionMapEventData.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.frmConditionMapEventData.Controls.Add(this.txtMapEventDataIndex); + this.frmConditionMapEventData.Controls.Add(this.lblMapEventDataIndex); + this.frmConditionMapEventData.Controls.Add(this.txtMapEventDataEventId); + this.frmConditionMapEventData.Controls.Add(this.lvlMapEventDataEventId); + this.frmConditionMapEventData.Controls.Add(this.txtMapEventDataValue); + this.frmConditionMapEventData.Controls.Add(this.cmbMapEventDataComparison); + this.frmConditionMapEventData.Controls.Add(this.lblMapEventDataComparison); + this.frmConditionMapEventData.Controls.Add(this.lblMapEventDataValue); + this.frmConditionMapEventData.Controls.Add(this.lblConditionMapEventDataTooltip); + this.frmConditionMapEventData.Location = new System.Drawing.Point(12, 212); + this.frmConditionMapEventData.Name = "frmConditionMapEventData"; + this.frmConditionMapEventData.Size = new System.Drawing.Size(650, 150); + this.frmConditionMapEventData.TabIndex = 36; + this.frmConditionMapEventData.Visible = false; + // + // txtMapEventDataIndex + // + this.txtMapEventDataIndex.Location = new System.Drawing.Point(421, 75); + this.txtMapEventDataIndex.Name = "txtMapEventDataIndex"; + this.txtMapEventDataIndex.Size = new System.Drawing.Size(215, 20); + this.txtMapEventDataIndex.TabIndex = 20; + this.txtMapEventDataIndex.Leave += new System.EventHandler(this.txtMapEventDataIndex_Leave); + // + // lblMapEventDataIndex + // + this.lblMapEventDataIndex.AutoSize = true; + this.lblMapEventDataIndex.Location = new System.Drawing.Point(332, 80); + this.lblMapEventDataIndex.Name = "lblMapEventDataIndex"; + this.lblMapEventDataIndex.Size = new System.Drawing.Size(36, 13); + this.lblMapEventDataIndex.TabIndex = 19; + this.lblMapEventDataIndex.Text = "Index:"; + // + // txtMapEventDataEventId + // + this.txtMapEventDataEventId.Location = new System.Drawing.Point(100, 75); + this.txtMapEventDataEventId.Name = "txtMapEventDataEventId"; + this.txtMapEventDataEventId.Size = new System.Drawing.Size(215, 20); + this.txtMapEventDataEventId.TabIndex = 18; + this.txtMapEventDataEventId.Leave += new System.EventHandler(this.txtMapEventDataEventId_Leave); + // + // lvlMapEventDataEventId + // + this.lvlMapEventDataEventId.AutoSize = true; + this.lvlMapEventDataEventId.Location = new System.Drawing.Point(11, 80); + this.lvlMapEventDataEventId.Name = "lvlMapEventDataEventId"; + this.lvlMapEventDataEventId.Size = new System.Drawing.Size(50, 13); + this.lvlMapEventDataEventId.TabIndex = 17; + this.lvlMapEventDataEventId.Text = "Event Id:"; + // + // txtMapEventDataValue + // + this.txtMapEventDataValue.Location = new System.Drawing.Point(100, 106); + this.txtMapEventDataValue.Name = "txtMapEventDataValue"; + this.txtMapEventDataValue.Size = new System.Drawing.Size(215, 20); + this.txtMapEventDataValue.TabIndex = 16; + this.txtMapEventDataValue.Leave += new System.EventHandler(this.txtMapEventDataValue_Leave); + // + // cmbMapEventDataComparison + // + this.cmbMapEventDataComparison.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbMapEventDataComparison.FormattingEnabled = true; + this.cmbMapEventDataComparison.Items.AddRange(new object[] { + "==", + ">=", + "<="}); + this.cmbMapEventDataComparison.Location = new System.Drawing.Point(421, 106); + this.cmbMapEventDataComparison.Name = "cmbMapEventDataComparison"; + this.cmbMapEventDataComparison.Size = new System.Drawing.Size(215, 21); + this.cmbMapEventDataComparison.TabIndex = 15; + this.cmbMapEventDataComparison.SelectedIndexChanged += new System.EventHandler(this.cmbMapEventDataComparison_SelectedIndexChanged); + // + // lblMapEventDataComparison + // + this.lblMapEventDataComparison.AutoSize = true; + this.lblMapEventDataComparison.Location = new System.Drawing.Point(332, 111); + this.lblMapEventDataComparison.Name = "lblMapEventDataComparison"; + this.lblMapEventDataComparison.Size = new System.Drawing.Size(65, 13); + this.lblMapEventDataComparison.TabIndex = 2; + this.lblMapEventDataComparison.Text = "Comparison:"; + // + // lblMapEventDataValue + // + this.lblMapEventDataValue.AutoSize = true; + this.lblMapEventDataValue.Location = new System.Drawing.Point(11, 111); + this.lblMapEventDataValue.Name = "lblMapEventDataValue"; + this.lblMapEventDataValue.Size = new System.Drawing.Size(37, 13); + this.lblMapEventDataValue.TabIndex = 1; + this.lblMapEventDataValue.Text = "Value:"; + // + // lblConditionMapEventDataTooltip + // + this.lblConditionMapEventDataTooltip.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lblConditionMapEventDataTooltip.Location = new System.Drawing.Point(12, 8); + this.lblConditionMapEventDataTooltip.Name = "lblConditionMapEventDataTooltip"; + this.lblConditionMapEventDataTooltip.Size = new System.Drawing.Size(624, 42); + this.lblConditionMapEventDataTooltip.TabIndex = 0; + this.lblConditionMapEventDataTooltip.Text = "Returns true if the value in the specified map event data field fits the required" + + " criteria."; + // + // frmConditionUnknown + // + this.frmConditionUnknown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.frmConditionUnknown.Controls.Add(this.txtUnknownValue4); + this.frmConditionUnknown.Controls.Add(this.txtUnknownValue2); + this.frmConditionUnknown.Controls.Add(this.lblUnknownValue2); + this.frmConditionUnknown.Controls.Add(this.txtUnknownValue1); + this.frmConditionUnknown.Controls.Add(this.lblUnknownValue1); + this.frmConditionUnknown.Controls.Add(this.txtUnknownValue3); + this.frmConditionUnknown.Controls.Add(this.lblUnknownValue4); + this.frmConditionUnknown.Controls.Add(this.lblUnknownValue3); + this.frmConditionUnknown.Controls.Add(this.lblConditionUnknownTooltip); + this.frmConditionUnknown.Location = new System.Drawing.Point(12, 212); + this.frmConditionUnknown.Name = "frmConditionUnknown"; + this.frmConditionUnknown.Size = new System.Drawing.Size(650, 150); + this.frmConditionUnknown.TabIndex = 37; + this.frmConditionUnknown.Visible = false; + // + // txtUnknownValue4 + // + this.txtUnknownValue4.Location = new System.Drawing.Point(421, 106); + this.txtUnknownValue4.Name = "txtUnknownValue4"; + this.txtUnknownValue4.Size = new System.Drawing.Size(215, 20); + this.txtUnknownValue4.TabIndex = 21; + this.txtUnknownValue4.Leave += new System.EventHandler(this.txtUnknownValue4_Leave); + // + // txtUnknownValue2 + // + this.txtUnknownValue2.Location = new System.Drawing.Point(421, 75); + this.txtUnknownValue2.Name = "txtUnknownValue2"; + this.txtUnknownValue2.Size = new System.Drawing.Size(215, 20); + this.txtUnknownValue2.TabIndex = 20; + this.txtUnknownValue2.Leave += new System.EventHandler(this.txtUnknownValue2_Leave); + // + // lblUnknownValue2 + // + this.lblUnknownValue2.AutoSize = true; + this.lblUnknownValue2.Location = new System.Drawing.Point(332, 80); + this.lblUnknownValue2.Name = "lblUnknownValue2"; + this.lblUnknownValue2.Size = new System.Drawing.Size(46, 13); + this.lblUnknownValue2.TabIndex = 19; + this.lblUnknownValue2.Text = "Value 2:"; + // + // txtUnknownValue1 + // + this.txtUnknownValue1.Location = new System.Drawing.Point(100, 75); + this.txtUnknownValue1.Name = "txtUnknownValue1"; + this.txtUnknownValue1.Size = new System.Drawing.Size(215, 20); + this.txtUnknownValue1.TabIndex = 18; + this.txtUnknownValue1.Leave += new System.EventHandler(this.txtUnknownValue1_Leave); + // + // lblUnknownValue1 + // + this.lblUnknownValue1.AutoSize = true; + this.lblUnknownValue1.Location = new System.Drawing.Point(11, 80); + this.lblUnknownValue1.Name = "lblUnknownValue1"; + this.lblUnknownValue1.Size = new System.Drawing.Size(46, 13); + this.lblUnknownValue1.TabIndex = 17; + this.lblUnknownValue1.Text = "Value 1:"; + // + // txtUnknownValue3 + // + this.txtUnknownValue3.Location = new System.Drawing.Point(100, 106); + this.txtUnknownValue3.Name = "txtUnknownValue3"; + this.txtUnknownValue3.Size = new System.Drawing.Size(215, 20); + this.txtUnknownValue3.TabIndex = 16; + this.txtUnknownValue3.Leave += new System.EventHandler(this.txtUnknownValue3_Leave); + // + // lblUnknownValue4 + // + this.lblUnknownValue4.AutoSize = true; + this.lblUnknownValue4.Location = new System.Drawing.Point(332, 111); + this.lblUnknownValue4.Name = "lblUnknownValue4"; + this.lblUnknownValue4.Size = new System.Drawing.Size(46, 13); + this.lblUnknownValue4.TabIndex = 2; + this.lblUnknownValue4.Text = "Value 4:"; + // + // lblUnknownValue3 + // + this.lblUnknownValue3.AutoSize = true; + this.lblUnknownValue3.Location = new System.Drawing.Point(11, 111); + this.lblUnknownValue3.Name = "lblUnknownValue3"; + this.lblUnknownValue3.Size = new System.Drawing.Size(46, 13); + this.lblUnknownValue3.TabIndex = 1; + this.lblUnknownValue3.Text = "Value 3:"; + // + // lblConditionUnknownTooltip + // + this.lblConditionUnknownTooltip.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lblConditionUnknownTooltip.Location = new System.Drawing.Point(12, 8); + this.lblConditionUnknownTooltip.Name = "lblConditionUnknownTooltip"; + this.lblConditionUnknownTooltip.Size = new System.Drawing.Size(624, 42); + this.lblConditionUnknownTooltip.TabIndex = 0; + this.lblConditionUnknownTooltip.Text = "This condition is not currently supported by the editor."; + // + // frmConditionMapEventTargets + // + this.frmConditionMapEventTargets.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.frmConditionMapEventTargets.Controls.Add(this.txtMapEventTargetsEventId); + this.frmConditionMapEventTargets.Controls.Add(this.btnMapEventTargetsConditionId); + this.frmConditionMapEventTargets.Controls.Add(this.lblMapEventTargetsConditionId); + this.frmConditionMapEventTargets.Controls.Add(this.lblMapEventTargetsEventId); + this.frmConditionMapEventTargets.Controls.Add(this.lblConditionMapEventTargetsTooltip); + this.frmConditionMapEventTargets.Location = new System.Drawing.Point(12, 212); + this.frmConditionMapEventTargets.Name = "frmConditionMapEventTargets"; + this.frmConditionMapEventTargets.Size = new System.Drawing.Size(650, 150); + this.frmConditionMapEventTargets.TabIndex = 38; + this.frmConditionMapEventTargets.Visible = false; + // + // txtMapEventTargetsEventId + // + this.txtMapEventTargetsEventId.Location = new System.Drawing.Point(100, 68); + this.txtMapEventTargetsEventId.Name = "txtMapEventTargetsEventId"; + this.txtMapEventTargetsEventId.Size = new System.Drawing.Size(536, 20); + this.txtMapEventTargetsEventId.TabIndex = 17; + this.txtMapEventTargetsEventId.Leave += new System.EventHandler(this.txtMapEventTargetsEventId_Leave); + // + // btnMapEventTargetsConditionId + // + this.btnMapEventTargetsConditionId.Location = new System.Drawing.Point(100, 101); + this.btnMapEventTargetsConditionId.Name = "btnMapEventTargetsConditionId"; + this.btnMapEventTargetsConditionId.Size = new System.Drawing.Size(536, 23); + this.btnMapEventTargetsConditionId.TabIndex = 16; + this.btnMapEventTargetsConditionId.Text = "-NONE-"; + this.btnMapEventTargetsConditionId.UseVisualStyleBackColor = true; + this.btnMapEventTargetsConditionId.Click += new System.EventHandler(this.btnMapEventTargetsConditionId_Click); + // + // lblMapEventTargetsConditionId + // + this.lblMapEventTargetsConditionId.AutoSize = true; + this.lblMapEventTargetsConditionId.Location = new System.Drawing.Point(11, 106); + this.lblMapEventTargetsConditionId.Name = "lblMapEventTargetsConditionId"; + this.lblMapEventTargetsConditionId.Size = new System.Drawing.Size(66, 13); + this.lblMapEventTargetsConditionId.TabIndex = 2; + this.lblMapEventTargetsConditionId.Text = "Condition Id:"; + // + // lblMapEventTargetsEventId + // + this.lblMapEventTargetsEventId.AutoSize = true; + this.lblMapEventTargetsEventId.Location = new System.Drawing.Point(11, 73); + this.lblMapEventTargetsEventId.Name = "lblMapEventTargetsEventId"; + this.lblMapEventTargetsEventId.Size = new System.Drawing.Size(50, 13); + this.lblMapEventTargetsEventId.TabIndex = 1; + this.lblMapEventTargetsEventId.Text = "Event Id:"; + // + // lblConditionMapEventTargetsTooltip + // + this.lblConditionMapEventTargetsTooltip.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lblConditionMapEventTargetsTooltip.Location = new System.Drawing.Point(12, 8); + this.lblConditionMapEventTargetsTooltip.Name = "lblConditionMapEventTargetsTooltip"; + this.lblConditionMapEventTargetsTooltip.Size = new System.Drawing.Size(624, 42); + this.lblConditionMapEventTargetsTooltip.TabIndex = 0; + this.lblConditionMapEventTargetsTooltip.Text = "Returns true if all of the extra targets part of the scripted map event satisfty " + + "the specified condition.."; // // FormConditionFinder // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.ClientSize = new System.Drawing.Size(674, 395); + this.Controls.Add(this.frmConditionMapEventTargets); + this.Controls.Add(this.frmConditionUnknown); + this.Controls.Add(this.frmConditionMapEventData); + this.Controls.Add(this.frmConditionInstanceData); this.Controls.Add(this.frmConditionEscort); this.Controls.Add(this.frmConditionContentPatch); this.Controls.Add(this.frmConditionNearbyObject); @@ -1275,10 +1658,15 @@ private void InitializeComponent() this.Controls.Add(this.cmbConditionType); this.Controls.Add(this.frmConditionNot); this.Controls.Add(this.lblNoSelection); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "FormConditionFinder"; this.Text = "Condition Finder"; this.ResizeEnd += new System.EventHandler(this.FormConditionFinder_ResizeEnd); + this.Controls.SetChildIndex(this.txtSearch, 0); + this.Controls.SetChildIndex(this.btnSearch, 0); + this.Controls.SetChildIndex(this.btnSelect, 0); + this.Controls.SetChildIndex(this.btnCancel, 0); + this.Controls.SetChildIndex(this.btnSelectUnchanged, 0); this.Controls.SetChildIndex(this.lblNoSelection, 0); this.Controls.SetChildIndex(this.frmConditionNot, 0); this.Controls.SetChildIndex(this.cmbConditionType, 0); @@ -1307,6 +1695,10 @@ private void InitializeComponent() this.Controls.SetChildIndex(this.frmConditionNearbyObject, 0); this.Controls.SetChildIndex(this.frmConditionContentPatch, 0); this.Controls.SetChildIndex(this.frmConditionEscort, 0); + this.Controls.SetChildIndex(this.frmConditionInstanceData, 0); + this.Controls.SetChildIndex(this.frmConditionMapEventData, 0); + this.Controls.SetChildIndex(this.frmConditionUnknown, 0); + this.Controls.SetChildIndex(this.frmConditionMapEventTargets, 0); this.frmConditionNot.ResumeLayout(false); this.frmConditionNot.PerformLayout(); this.frmConditionAura.ResumeLayout(false); @@ -1339,6 +1731,14 @@ private void InitializeComponent() this.frmConditionContentPatch.PerformLayout(); this.frmConditionEscort.ResumeLayout(false); this.frmConditionEscort.PerformLayout(); + this.frmConditionInstanceData.ResumeLayout(false); + this.frmConditionInstanceData.PerformLayout(); + this.frmConditionMapEventData.ResumeLayout(false); + this.frmConditionMapEventData.PerformLayout(); + this.frmConditionUnknown.ResumeLayout(false); + this.frmConditionUnknown.PerformLayout(); + this.frmConditionMapEventTargets.ResumeLayout(false); + this.frmConditionMapEventTargets.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -1452,5 +1852,39 @@ private void InitializeComponent() private System.Windows.Forms.Label lblEscortDistance; private System.Windows.Forms.Label lblEscortFlags; private System.Windows.Forms.Label lblConditionEscortTooltip; + private System.Windows.Forms.Panel frmConditionInstanceData; + private System.Windows.Forms.TextBox txtInstanceDataValue; + private System.Windows.Forms.Label lblInstanceDataValue; + private System.Windows.Forms.TextBox txtInstanceDataIndex; + private System.Windows.Forms.ComboBox cmbInstanceDataComparison; + private System.Windows.Forms.Label lblInstanceDataComparison; + private System.Windows.Forms.Label lblInstanceDataIndex; + private System.Windows.Forms.Label lblConditionInstanceDataTooltip; + private System.Windows.Forms.Panel frmConditionMapEventData; + private System.Windows.Forms.TextBox txtMapEventDataIndex; + private System.Windows.Forms.Label lblMapEventDataIndex; + private System.Windows.Forms.TextBox txtMapEventDataEventId; + private System.Windows.Forms.Label lvlMapEventDataEventId; + private System.Windows.Forms.TextBox txtMapEventDataValue; + private System.Windows.Forms.ComboBox cmbMapEventDataComparison; + private System.Windows.Forms.Label lblMapEventDataComparison; + private System.Windows.Forms.Label lblMapEventDataValue; + private System.Windows.Forms.Label lblConditionMapEventDataTooltip; + private System.Windows.Forms.Panel frmConditionUnknown; + private System.Windows.Forms.TextBox txtUnknownValue4; + private System.Windows.Forms.TextBox txtUnknownValue2; + private System.Windows.Forms.Label lblUnknownValue2; + private System.Windows.Forms.TextBox txtUnknownValue1; + private System.Windows.Forms.Label lblUnknownValue1; + private System.Windows.Forms.TextBox txtUnknownValue3; + private System.Windows.Forms.Label lblUnknownValue4; + private System.Windows.Forms.Label lblUnknownValue3; + private System.Windows.Forms.Label lblConditionUnknownTooltip; + private System.Windows.Forms.Panel frmConditionMapEventTargets; + private System.Windows.Forms.TextBox txtMapEventTargetsEventId; + private System.Windows.Forms.Button btnMapEventTargetsConditionId; + private System.Windows.Forms.Label lblMapEventTargetsConditionId; + private System.Windows.Forms.Label lblMapEventTargetsEventId; + private System.Windows.Forms.Label lblConditionMapEventTargetsTooltip; } } diff --git a/ScriptEditor/DataFinderForms/FormConditionFinder.cs b/ScriptEditor/DataFinderForms/FormConditionFinder.cs index 222ea28..2d925e2 100644 --- a/ScriptEditor/DataFinderForms/FormConditionFinder.cs +++ b/ScriptEditor/DataFinderForms/FormConditionFinder.cs @@ -13,7 +13,6 @@ namespace ScriptEditor public partial class FormConditionFinder : ScriptEditor.FormDataFinder { private bool dontUpdate = false; - private bool editMode = false; private ComboboxPair[] ConditionTeam_ComboOptions = { @@ -21,6 +20,32 @@ public partial class FormConditionFinder : ScriptEditor.FormDataFinder new ComboboxPair("Alliance", 469) }; + private ComboboxPair[] ConditionGender_ComboOptions = + { + new ComboboxPair("Male", 0), + new ComboboxPair("Female", 1), + new ComboboxPair("None", 2) + }; + + private ComboboxPair[] ConditionObjectLootState_ComboOptions = + { + new ComboboxPair("Not Ready", 0), + new ComboboxPair("Ready", 1), + new ComboboxPair("Activated", 2), + new ComboboxPair("Just Deactivated", 3), + }; + + public void ShowStandalone() + { + this.ControlBox = true; + this.MinimizeBox = true; + this.ShowIcon = true; + this.Text = "Condition Editor"; + this.ShowInTaskbar = true; + btnEditAdd_Click(null, null); + this.Show(); + } + private void ResetBaseControls() { cmbConditionType.SelectedIndex = -1; @@ -64,11 +89,15 @@ private void ResetAndHideConditionSpecificForms() frmConditionReputation.Visible = false; // CONDITION_TEAM (6) + // CONDITION_TARGET_GENDER (27) + // CONDITION_MAP_ID (33) + // CONDITION_OBJECT_LOOT_STATE (49) cmbTeamId.SelectedIndex = 0; frmConditionTeam.Visible = false; // CONDITION_SKILL (7) // CONDITION_SKILL_BELOW (29) + // CONDITION_HAS_FLAG (31) cmbSkillId.SelectedIndex = 0; txtSkillLevel.Text = ""; frmConditionSkill.Visible = false; @@ -84,6 +113,9 @@ private void ResetAndHideConditionSpecificForms() // CONDITION_WAR_EFFORT_STAGE (11) // CONDITION_LEVEL (15) // CONDITION_SOURCE_ENTRY (16) + // CONDITION_LAST_WAYPOINT (32) + // CONDITION_MAP_EVENT_ACTIVE (36) + // CONDITION_DISTANCE (38) txtWarEffortStage.Text = ""; cmbWarEffortComparison.SelectedIndex = 0; frmConditionWarEffort.Visible = false; @@ -122,6 +154,31 @@ private void ResetAndHideConditionSpecificForms() chkEscortTargetDead.Checked = false; txtEscortDistance.Text = ""; frmConditionEscort.Visible = false; + + // CONDITION_INSTANCE_DATA (34) + txtInstanceDataIndex.Text = ""; + txtInstanceDataValue.Text = ""; + cmbInstanceDataComparison.SelectedIndex = 0; + frmConditionInstanceData.Visible = false; + + // CONDITION_MAP_EVENT_DATA (35) + txtMapEventDataEventId.Text = ""; + txtMapEventDataIndex.Text = ""; + txtMapEventDataValue.Text = ""; + cmbMapEventDataComparison.SelectedIndex = 0; + frmConditionMapEventData.Visible = false; + + // CONDITION_MAP_EVENT_TARGETS (47) + txtMapEventTargetsEventId.Text = ""; + btnMapEventTargetsConditionId.Text = "-NONE-"; + frmConditionMapEventTargets.Visible = false; + + // Unknown Condition Id + txtUnknownValue1.Text = ""; + txtUnknownValue2.Text = ""; + txtUnknownValue3.Text = ""; + txtUnknownValue4.Text = ""; + frmConditionUnknown.Visible = false; } private void ShowConditionSpecificForm(ConditionInfo selectedCondition) @@ -179,6 +236,16 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) } case 0: // CONDITION_NONE case 10: // CONDITION_AD_COMMISSION_AURA + case 13: // CONDITION_CANT_PATH_TO_VICTIM + case 28: // CONDITION_IS_PLAYER + case 37: // CONDITION_LINE_OF_SIGHT + case 39: // CONDITION_IS_MOVING + case 40: // CONDITION_HAS_PET + case 43: // CONDITION_IS_IN_COMBAT + case 44: // CONDITION_IS_HOSTILE_TO + case 45: // CONDITION_IS_IN_GROUP + case 46: // CONDITION_IS_ALIVE + case 48: // CONDITION_OBJECT_IS_SPAWNED { switch (selectedCondition.Type) { @@ -192,6 +259,56 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) lblConditionNotTooltip.Text = "Returns true if the target Player has an Argent Dawn commission aura."; break; } + case 13: // CONDITION_CANT_PATH_TO_VICTIM + { + lblConditionNotTooltip.Text = "Returns true if the source Creature cannot find a path to its victim."; + break; + } + case 28: // CONDITION_IS_PLAYER + { + lblConditionNotTooltip.Text = "Returns true if the target WorldObject is a Player."; + break; + } + case 37: // CONDITION_LINE_OF_SIGHT + { + lblConditionNotTooltip.Text = "Returns true if the source and target WorldObjects are within line of sight of each other."; + break; + } + case 39: // CONDITION_IS_MOVING + { + lblConditionNotTooltip.Text = "Returns true if the target WorldObject is currently moving."; + break; + } + case 40: // CONDITION_HAS_PET + { + lblConditionNotTooltip.Text = "Returns true if the target Unit has a pet."; + break; + } + case 43: // CONDITION_IS_IN_COMBAT + { + lblConditionNotTooltip.Text = "Returns true if the target Unit is in combat."; + break; + } + case 44: // CONDITION_IS_HOSTILE_TO + { + lblConditionNotTooltip.Text = "Returns true if the source and target Units are hostile to each other."; + break; + } + case 45: // CONDITION_IS_IN_GROUP + { + lblConditionNotTooltip.Text = "Returns true if the target Player is currently in a group."; + break; + } + case 46: // CONDITION_IS_ALIVE + { + lblConditionNotTooltip.Text = "Returns true if the target Unit is alive."; + break; + } + case 48: // CONDITION_OBJECT_IS_SPAWNED + { + lblConditionNotTooltip.Text = "Returns true if the target GameObject is currently spawned."; + break; + } } lblConditionNotCondition1.Visible = false; lblConditionNotCondition2.Visible = false; @@ -272,7 +389,22 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) break; } case 5: // CONDITION_REPUTATION_RANK_MIN + case 30: // CONDITION_REPUTATION_RANK_MAX { + switch (selectedCondition.Type) + { + case 5: // CONDITION_REPUTATION_RANK_MIN + { + lblConditionReputationTooltip.Text = "Returns true if the target Player has reached a minimum reputation level with the specified faction."; + break; + } + case 30: // CONDITION_REPUTATION_RANK_MAX + { + lblConditionReputationTooltip.Text = "Returns true if the target Player's reputiation is equal or below the specified level."; + break; + } + } + uint factionId = selectedCondition.Value1; if (factionId > 0) btnReputationFactionId.Text = GameData.FindFactionName(factionId) + " (" + factionId.ToString() + ")"; @@ -281,24 +413,73 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) break; } case 6: // CONDITION_TEAM + case 27: // CONDITION_TARGET_GENDER + case 33: // CONDITION_MAP_ID + case 49: // CONDITION_OBJECT_LOOT_STATE { + switch (selectedCondition.Type) + { + case 6: // CONDITION_TEAM + { + lblConditionTeamTooltip.Text = "Returns true if the target Player is a member of the specified team."; + lblTeamId.Text = "Team:"; + cmbTeamId.DataSource = ConditionTeam_ComboOptions; ; + break; + } + case 27: // CONDITION_TARGET_GENDER + { + lblConditionTeamTooltip.Text = "Returns true if the target Unit is of the specified gender."; + lblTeamId.Text = "Gender:"; + cmbTeamId.DataSource = ConditionGender_ComboOptions; ; + break; + } + case 33: // CONDITION_MAP_ID + { + lblConditionTeamTooltip.Text = "Returns true if the current map Id matches the one specified.."; + lblTeamId.Text = "Map Id:"; + cmbTeamId.DataSource = GameData.MapsList; + break; + } + case 49: // CONDITION_OBJECT_LOOT_STATE + { + lblConditionTeamTooltip.Text = "Returns true if the target GameObject's loot state matches the one specified."; + lblTeamId.Text = "Loot State:"; + cmbTeamId.DataSource = ConditionObjectLootState_ComboOptions; + break; + } + } cmbTeamId.SelectedIndex = ComboboxPair.GetIndexFromComboboxPairValue(cmbTeamId, (int)selectedCondition.Value1); frmConditionTeam.Visible = true; break; } case 7: // CONDITION_SKILL case 29: // CONDITION_SKILL_BELOW + case 31: // CONDITION_HAS_FLAG { switch (selectedCondition.Type) { case 7: // CONDITION_SKILL { lblConditionSkillTooltip.Text = "Returns true if the target Player has reached a minimum skill level."; + cmbSkillId.DataSource = GameData.SkillsList; + lblSkillId.Text = "Skill Id:"; + lblSkillLevel.Text = "Skill Level:"; break; } case 29: // CONDITION_SKILL_BEL { lblConditionSkillTooltip.Text = "Returns true if the target Player knows the skill itself but his skill level is below the specified value."; + cmbSkillId.DataSource = GameData.SkillsList; + lblSkillId.Text = "Skill Id:"; + lblSkillLevel.Text = "Skill Level:"; + break; + } + case 31: // CONDITION_HAS_FLAG + { + lblConditionSkillTooltip.Text = "Returns true if the source WorldObject has the specified flag."; + cmbSkillId.DataSource = GameData.FlagFieldsList; + lblSkillId.Text = "Field:"; + lblSkillLevel.Text = "Flag:"; break; } } @@ -354,6 +535,12 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) case 11: // CONDITION_WAR_EFFORT_STAGE case 15: // CONDITION_LEVEL case 16: // CONDITION_SOURCE_ENTRY + case 26: // CONDITION_ACTIVE_HOLIDAY + case 32: // CONDITION_LAST_WAYPOINT + case 36: // CONDITION_MAP_EVENT_ACTIVE + case 38: // CONDITION_DISTANCE + case 41: // CONDITION_HEALTH_PERCENT + case 42: // CONDITION_MANA_PERCENT { switch (selectedCondition.Type) { @@ -381,6 +568,54 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) lblWarEffortStage.Text = "Entry:"; break; } + case 26: // CONDITION_ACTIVE_HOLIDAY + { + lblConditionWarEffortTooltip.Text = "Returns true if the specified holiday is currently active."; + cmbWarEffortComparison.Visible = false; + lblWarEffortComparison.Visible = false; + lblWarEffortStage.Text = "Holiday Id:"; + break; + } + case 32: // CONDITION_LAST_WAYPOINT + { + lblConditionWarEffortTooltip.Text = "Returns true if the source Creature's last reached waypoint matches the one specified."; + cmbWarEffortComparison.Visible = true; + lblWarEffortComparison.Visible = true; + lblWarEffortStage.Text = "Waypoint:"; + break; + } + case 36: // CONDITION_MAP_EVENT_ACTIVE + { + lblConditionWarEffortTooltip.Text = "Returns true if a scripted map event with the specified Id is currently running."; + cmbWarEffortComparison.Visible = false; + lblWarEffortComparison.Visible = false; + lblWarEffortStage.Text = "Event Id:"; + break; + } + case 38: // CONDITION_DISTANCE + { + lblConditionWarEffortTooltip.Text = "Returns true if the source and target WorldObjects are within a specified distance of each other."; + cmbWarEffortComparison.Visible = true; + lblWarEffortComparison.Visible = true; + lblWarEffortStage.Text = "Distance:"; + break; + } + case 41: // CONDITION_HEALTH_PERCENT + { + lblConditionWarEffortTooltip.Text = "Returns true if the target Unit's remaining health percent matches the specified criteria."; + cmbWarEffortComparison.Visible = true; + lblWarEffortComparison.Visible = true; + lblWarEffortStage.Text = "Health:"; + break; + } + case 42: // CONDITION_MANA_PERCENT + { + lblConditionWarEffortTooltip.Text = "Returns true if the target Unit's remaining mana percent matches the specified criteria."; + cmbWarEffortComparison.Visible = true; + lblWarEffortComparison.Visible = true; + lblWarEffortStage.Text = "Mana:"; + break; + } } txtWarEffortStage.Text = selectedCondition.Value1.ToString(); cmbWarEffortComparison.SelectedIndex = (int)selectedCondition.Value2; @@ -444,6 +679,41 @@ private void ShowConditionSpecificForm(ConditionInfo selectedCondition) frmConditionEscort.Visible = true; break; } + case 34: // CONDITION_INSTANCE_DATA + { + txtInstanceDataIndex.Text = selectedCondition.Value1.ToString(); + txtInstanceDataValue.Text = selectedCondition.Value2.ToString(); + cmbInstanceDataComparison.SelectedIndex = (int)selectedCondition.Value3; + frmConditionInstanceData.Visible = true; + break; + } + case 35: // CONDITION_MAP_EVENT_DATA + { + txtMapEventDataEventId.Text = selectedCondition.Value1.ToString(); + txtMapEventDataIndex.Text = selectedCondition.Value2.ToString(); + txtMapEventDataValue.Text = selectedCondition.Value3.ToString(); + cmbMapEventDataComparison.SelectedIndex = (int)selectedCondition.Value4; + frmConditionMapEventData.Visible = true; + break; + } + case 47: // CONDITION_MAP_EVENT_TARGETS + { + txtMapEventTargetsEventId.Text = selectedCondition.Value1.ToString(); + uint conditionId = selectedCondition.Value2; + if (conditionId > 0) + btnConditionNotCondition1.Text = conditionId.ToString() + " - " + GameData.FindConditionName(conditionId); + frmConditionMapEventTargets.Visible = true; + break; + } + default: + { + txtUnknownValue1.Text = selectedCondition.Value1.ToString(); + txtUnknownValue2.Text = selectedCondition.Value2.ToString(); + txtUnknownValue3.Text = selectedCondition.Value3.ToString(); + txtUnknownValue4.Text = selectedCondition.Value4.ToString(); + frmConditionUnknown.Visible = true; + break; + } } } @@ -468,6 +738,8 @@ protected override void AddAllData() ResetAndHideConditionSpecificForms(); dontUpdate = false; + lstData.Columns[6].Width = 75; + foreach (ConditionInfo condition in GameData.ConditionInfoList) { AddConditionToListView(condition); @@ -493,6 +765,8 @@ protected override void AddByIdRange(uint minId, uint maxId) ResetAndHideConditionSpecificForms(); dontUpdate = false; + lstData.Columns[6].Width = 75; + foreach (ConditionInfo condition in GameData.ConditionInfoList) { if ((condition.ID >= minId) && (condition.ID <= maxId)) @@ -517,7 +791,12 @@ private void AddConditionToListView(ConditionInfo condition) private void FormConditionFinder_ResizeEnd(object sender, EventArgs e) { + if (editMode) + return; + lstData.Columns[1].Width = lstData.ClientSize.Width - lstData.Columns[0].Width - lstData.Columns[2].Width - lstData.Columns[3].Width - lstData.Columns[4].Width - lstData.Columns[5].Width - lstData.Columns[6].Width; + btnEditAdd.Location = new Point(btnEditAdd.Location.X, lstData.Location.Y + lstData.Height + 5); + btnDelete.Location = new Point(btnDelete.Location.X, lstData.Location.Y + lstData.Height + 5); } private void UpdateSelectedItem() { @@ -823,7 +1102,19 @@ private void btnEditAdd_Click(object sender, EventArgs e) if (!editMode) { editMode = true; + lstData.Height = 123; + lstData.Width = this.Size.Width - 30; + btnEditAdd.Location = new Point(btnEditAdd.Location.X, 367); + btnDelete.Location = new Point(btnDelete.Location.X, 367); + this.FormBorderStyle = FormBorderStyle.FixedSingle; + this.Size = new Size(680, 420); + btnSearch.Location = new Point(579, 28); + txtSearch.Width = 560; + btnCancel.Location = new Point(586, 367); + btnSelect.Location = new Point(505, 367); + btnSelectNone.Location = new Point(411, 367); + txtConditionId.Visible = true; chkConditionFlag1.Visible = true; chkConditionFlag2.Visible = true; @@ -1275,5 +1566,61 @@ private void txtEscortDistance_Leave(object sender, EventArgs e) { SetScriptFieldFromTextbox(txtEscortDistance, "Value2"); } + // CONDITION_INSTANCE_DATA + private void txtInstanceDataIndex_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtInstanceDataIndex, "Value1"); + } + private void txtInstanceDataValue_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtInstanceDataValue, "Value2"); + } + private void cmbInstanceDataComparison_SelectedIndexChanged(object sender, EventArgs e) + { + SetScriptFieldFromCombobox(cmbInstanceDataComparison, "Value3", false); + } + // CONDITION_MAP_EVENT_DATA + private void txtMapEventDataEventId_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtMapEventDataEventId, "Value1"); + } + private void txtMapEventDataIndex_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtMapEventDataIndex, "Value2"); + } + private void txtMapEventDataValue_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtMapEventDataValue, "Value3"); + } + private void cmbMapEventDataComparison_SelectedIndexChanged(object sender, EventArgs e) + { + SetScriptFieldFromCombobox(cmbMapEventDataComparison, "Value4", false); + } + // CONDITION_MAP_EVENT_TARGETS + private void txtMapEventTargetsEventId_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtMapEventTargetsEventId, "Value1"); + } + private void btnMapEventTargetsConditionId_Click(object sender, EventArgs e) + { + SetScriptFieldFromDataFinderForm(btnMapEventTargetsConditionId, null, GameData.FindConditionName, "Value2"); + } + // Unknown Condition Id + private void txtUnknownValue1_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtUnknownValue1, "Value1"); + } + private void txtUnknownValue2_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtUnknownValue2, "Value2"); + } + private void txtUnknownValue3_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtUnknownValue3, "Value3"); + } + private void txtUnknownValue4_Leave(object sender, EventArgs e) + { + SetScriptFieldFromTextbox(txtUnknownValue4, "Value4"); + } } } diff --git a/ScriptEditor/DataFinderForms/FormConditionFinder.resx b/ScriptEditor/DataFinderForms/FormConditionFinder.resx index 1af7de1..96d5e4d 100644 --- a/ScriptEditor/DataFinderForms/FormConditionFinder.resx +++ b/ScriptEditor/DataFinderForms/FormConditionFinder.resx @@ -117,4 +117,261 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAADA8MAAwPeAQMD3gMCA94EAgPeBgID3gYC + A94IAwLeBQMA3gUFAN4FCADeBAgA3gEIAN4BBgDeAAMA3gABAN4BAQPeAQEE3gEDBd4BAwXeAgQC3gEE + AN4ABQDeAAQA3gEDAN4DBgPeAwUE3gEEAd4CCADeAwkA3gMGAN4EBQDeBgUB3gYDAt4GAgPeBgID3gQC + A94DAgPeAgID3gADA94AAwPeAgMD3gMDA94DAwPeAwMD3gMDA94DAwPeAwMDwQADBOAAAwX/AQME/wMC + BP8FAgT/BwID/wcDAv8HBAL/BgYB/wcIAf8DBgH/AQQA/wAFAP8BBwH/AAMA/wABAv8DBAr/AgMN/wIB + Dv8DAw7/AgMK/wABA/8BBAH/AgUB/wIDAP8FBQP/BwcG/wIFAv8BBwD/AwgA/wIHAP8EBgD/BgUB/wYD + Af8GAgL/BgID/wUCBP8DAgT/AgIE/wADBf8AAwX/AgMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD3gAC + BeAAAgb/AQIF/wMCBP8FAwP/BwMB/wYEAP8FBQH/AwQA/wMEAf8BBAP/AAQD/wEFBP8CBgb/AAEF/wAB + DP8HCBz/Dw8t/xIRNf8LCy7/BQYi/wECF/8AAQv/AgIH/wIBBf8FAQb/BgII/wIDBv8ABQX/AAQD/wAD + Af8BBAH/BAYC/wYFAv8FBAH/BQMB/wUDA/8DAgT/AgIF/wACBv8AAgb/AgIE/wMDA/8DAwP/AwMD/wMD + A/8DAwP/AwMD3gABB+AAAgf/AQIF/wMDA/8FBAH/BQQA/wUEAP8DAwD/AQEC/wIDBv8BAwr/AAIM/wAB + Dv8AAhH/AAMc/wYMMf8SF0v/Fhpd/xMWYf8QFWH/DRNY/wgNR/8KEDv/Cw8x/wUGIf8EAhn/BAIY/wIC + E/8AAw7/AAEL/wACCP8AAwb/AAID/wECAP8DAwD/BQQA/wUEAf8EAwL/AgIF/wEBB/8BAQf/AwIE/wMD + A/8DAwP/AwMD/wMDA/8DAwP/AwMD3gABB+AAAgf/AgIF/wQDAv8FBAH/BQUA/wQEAP8CAgL/AAEG/wEB + C/8AABD/AAAV/wMFI/8JDzj/DBhP/woXX/8MGHL/GCKP/yMupv8dKKP/EyCV/w0bgv8KFWz/CxVd/xAV + U/8SE0r/CQk6/wEBKf8BAh7/AQEY/wABEv8AAQz/AAEH/wIEBf8EBQH/BQUA/wUEAP8EBAH/AwME/wIB + Bv8BAQf/AwIE/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD3gEBBuABAgX/AwMD/wQEAf8FBQD/BQUA/wQE + Av8CAgX/AAAM/wEBFP8CAyD/Bwgw/xETR/8RHF//DCB3/xUsl/8lO7v/METZ/zFF5/8tQuf/KkHh/yc+ + z/8gNbX/FCeV/w4cff8SG3T/EBVn/w8SVf8PFEf/DA86/wUIKv8BAhj/AAEM/wECBf8CBAL/BQUA/wUF + AP8EBAH/AwMD/wIBBv8BAgb/AwIE/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD3gEDA+ABAwP/AgMC/wQG + Af8FBgD/AwQC/wICCf8AABH/AgQe/woQMP8PF0P/ERpX/xMbcP8VJpH/Hz25/ylM1v8sS+X/KETw/yhC + +f8pQf3/J0D7/yhD8/8rR+b/LkjZ/zFHzf8vQsD/Hi6j/w8ggf8OHm//EBpl/xEXWP8JDT7/BAUg/wAC + Cf8AAwT/AQQD/wEFAf8BBAL/AQMD/wICBf8DAgX/AwIE/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD3gAF + AOABBgH/AQUC/wUIA/8EBgP/AQIK/wQEHv8JCjX/DRVG/xIjV/8LImD/EyiB/yI0tf8sRN//IUbp/xpE + 5v8SNd3/Dyze/xQs6f8hNfn/JDn//yU9/P8kP/X/JkPw/ydF7P8yTvL/M0/r/ylJ0f8aOrT/FSui/xwo + lP8VHXH/Cw8+/wABEP8AAQn/AAMJ/wAEBf8ABgT/AQUF/wEBAv8DAgL/AwMD/wMDA/8DAwP/AwMD/wMD + A/8DAwP/AwMD3gMGAOAEBwL/AgUH/wACCP8BAxH/ChAs/wkRQf8SG2H/DBts/xMphP8iPKb/MkvP/zhM + 8P8rQvj/IkD7/xg37f8OK9r/DSfU/woh0/8PI97/Gy/z/yM5/v8eOvn/IUD5/x9A9/8hP/v/Hjv2/yNH + 8v8lS+n/K0nj/zJH1f8xP7L/HCNw/wMFLP8AARL/AwML/wUDBv8FAwT/BAMD/wMBA/8DAQX/AwMD/wMD + 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 + AOAHBQH/BAMD/wIDD/8CAx3/CQk+/xkaaP8iI4z/ISWi/yAlsv8SGa7/FBy2/xcfvv8YIMT/Fx7E/xwh + wf8lJLz/KyWz/y8lpv8rIJL/IRiA/yIbh/8sJKn/KiPA/x4cyP8XIMb/FSa8/xsiuP8oJrT/Jy6a/yMy + gf8dKW//HiN9/y8sn/80Lav/My2j/ywujf8kKX3/JSiC/y8rnf8yK7T/JCK5/x8fuf8iI7P/JCSq/yAg + mv8ZFoL/Eg5x3hEHAeAPBQD/CwMB/wcCBf8EAgn/AQIN/wEDF/8HCzT/FRla/xkefv8XG5f/HB6u/xwe + uv8cIb//GiK//x8jvf8wLr3/Ly2i/x4bcP8MC0H/AgMu/w0LRv8oIoL/NCuu/ykkuv8gJLj/Himy/yso + tv8wI6X/GRxr/wYUOf8BCR3/CQ86/ygrgv8zLaj/LyWw/ysnq/8oKKj/Iyan/yIhsP8kIbb/Ih6t/yEd + n/8dHIz/Fxlw/wwPTv8CAyz/AQEa3gsFA+AJAgL/CQEE/wgCB/8EAQf/AgIH/wMECv8ABAr/AAIQ/wUJ + Lf8OEU//FBRz/yYinP8pJ6//Gx+u/xYWrP8pJbb/Liul/x4def8QEVT/EBFJ/x0dWv8zM3n/OTqL/yss + iv8kJZP/LCmo/zQosP8zJaD/JCJ4/xghWP8RG0f/Fxxb/yssj/8xK63/KCKz/x4drP8bIKn/ICms/x4o + q/8VHpf/EhNz/w0LU/8EAzr/AAAn/wABGP8AAgz/AAED3gEDBOABAgb/AwII/wMACv8EAAv/BQEK/wQC + B/8EBQL/BgkE/wADBv8AAhP/BAMv/w0LSv8ZFXH/HR6M/xoWmf8mIKz/Mi6x/zMxpv8oKZD/KSmJ/zIz + i/8sMnX/HihZ/w4URf8RD1v/KRyP/zUnqv80LKz/LSud/ysslP8rLpP/LzCb/zIwpv8rJqf/IyCh/x4h + mv8bI5H/Ehp6/wsQYP8ECEn/AAEp/wAAFf8AAA//AAAK/wABBv8AAgP/AQIB3gAKAuAACAT/AAMI/wEC + C/8DAQz/BgMJ/wUCA/8IBAH/CAUD/wUBBf8CAQn/AQEO/wEBEv8EAyH/CAk8/xMSaP8jHY//KCSe/ycm + oP8iJJv/IyWc/yQnlv8XH3T/DRdT/wQHN/8HBEX/Gg51/yUgoP8jJbP/ISK2/yIgtP8kIK//JyKo/yci + mf8mIoj/Ghlv/wsNU/8HCTz/AgQp/wABG/8BARP/AgIJ/wUFBv8EBAT/AwQE/wQEA/8GBAP/BgUE3gEG + A+AABQP/AQYF/wEGCP8DBAX/BAID/wkFBP8IAwP/BwEF/wUBB/8EAQb/AQQE/wEGAv8ABAX/AAAR/wIC + Jf8GBUT/ExNk/xsdff8aHIr/HByV/yQkoP8hJZL/GiF7/xUcav8bG3P/JR+M/ycmpv8fJLD/HR+w/yEg + rf8hH5//GRaA/w0LW/8HBjv/BAQn/wMCG/8CARH/AwIK/wYFBP8HBgL/CgcD/wcEAf8IBQL/CgYD/wgF + Av8GAgH/BQMC3gIFDOAAAwb/AgUB/wEHAf8ICwH/CAgB/wYEAf8GAgT/BAEF/wIDBf8BAwP/AAUC/wAF + Af8AAgX/AQAJ/wECCv8BAg3/AQIa/wUHNv8SEl7/HhuA/yUilf8oJ53/IySY/yIkmP8nKaD/KSql/yUl + n/8hIpT/HyCF/xocbv8MDk3/AgMp/wEBFf8CAhD/BgMO/woEDP8LAwf/DAEC/w0DAP8PBgD/CwQA/wwF + Av8NBwT/BwEB/wcDAf8IBAL/CQYE3gICBuADAgT/BAQC/wUGAv8FBwH/CQoC/wMEAf8DAwL/AgMD/wAE + A/8ABQL/AAUC/wAGAf8ABQL/AQMB/wMHAP8DCAD/AgME/wEBEP8BASX/CQg9/xYVWP8dHXH/HR+A/yQo + j/8eJor/GSF7/xkaZ/8PDk3/BAMw/wMCHv8CAhP/AQII/wMDA/8FBAP/CAQE/woEBP8KAwH/CwMA/wsE + AP8NBwD/CgUB/w0KAv8JBQH/CAQB/wcEA/8FAQT/AwAE3gQDA+AHBQX/AwEE/wYEB/8EAwX/BAQC/wIE + Af8BBQH/AQQC/wADBP8ABAP/AAQC/wAGAP8BBwD/BQkA/wYLAP8FCQD/AwQB/wIBBv8FAw3/BAQO/wEB + EP8ICSj/EBJC/xEUUP8IDkH/Awgq/wIDGv8DARD/AwAJ/wUCBv8FAwL/BAIA/wcDAv8JBAT/CAMD/wcE + A/8HBgL/BwYB/wUFAP8EBQD/BgcA/wcIAP8GBwH/BgYC/wIBA/8GAwr/AwEK3g0MDuAFBQf/AwMG/wID + BP8CBAT/AQIC/wQGBf8BBAL/AgMD/wIDA/8EAwP/BQMD/wYEAv8EAwP/AgQD/wMEAv8CBQD/BAQD/wQE + BP8EAgT/BgQF/wQCBv8CAAn/AwAS/wMBF/8BAA7/AQAG/wEDBf8CAgP/AgID/wUDBv8IBQj/BgMH/wQC + BP8FAwP/BAQC/wMEAv8CAwH/AgID/wEDBf8BBAb/BQUI/wIDBP8DBAX/AgMF/wMDBv8FBAn/CwwR3mtr + csQLCxDfAQIC3wACAd8DCATfAQMC3wEDA98BAwPfAgMD3wUCA98IAgPfCQID3woBBN8FAAjfAAAK3wAA + CN8AAQLfAQEB3wICAd8CAQLfBAED3wYBA98GAAPfCAEF3wkBBN8KAgLfCAIA3wMEAN8BBQHfAAME3wEB + Bt8CAQnfAQEI3wIBBd8BAQLfAQMC3wMFBd8CBAXfAQEI3wAACd8AAQvfAQEL3wEBCd8DAwzfAAEG3wEB + BN8MDA7fa25vwgAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAA + AAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAA + XAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAA + AAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAA + XAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAA + AAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBwAAAAAAAFwHAAAAAAAA + XAcAAAAAAABcBwAAAAAAAFwHAAAAAAAAXAcAAAAAAABcBygAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAA + AAAAAAAAAAAAAAAAAAAAAwPCAQME3gMCA94FAgPeCAMD3gYEAd4FBgHeAwgA3gEGAN4ABADeAAEC3gEC + Bt4CAgjeAgME3gEDAN4ABQDeAgQB3gQGBN4CBQHeAwkA3gMGAN4FBAHeBgMC3gYCA94DAgPeAgIE3gAD + A94CAwPeAwMD3gMDA94DAwPeAwMDwQACBd8BAgX/BAIE/wYDAv8GBAH/BAQA/wQFAf8BBAL/AAUE/wAD + Bf8CAw7/Cgsh/wsLKf8FBh//AQIQ/wIDB/8DAgX/BgMG/wIFBf8BBgL/AQQB/wQFAf8GBQL/BQQC/wQD + A/8CAgT/AAIG/wICBf8DAwP/AwMD/wMDA/8DAwPeAAEI3wECBv8EAwL/BQQA/wQDAP8BAgL/AQII/wAC + Df8BAxX/Awgm/wkRQ/8UGmP/Fhty/xAWav8JEVL/ChA+/wgJLP8GBCL/AQIW/wABD/8AAgr/AAMF/wID + Af8FBAD/BQQB/wMCBP8BAQb/AgIF/wMDA/8DAwP/AwMD/wMDA94BAQbfAgME/wQEAf8FBAD/AwMC/wEB + Cf8BAhX/BgYn/w0RQ/8OHmn/FSqR/yY4vf8sPtb/JDjO/x0xtP8UJY7/Eh10/xAVYP8LDkb/CQw0/wQF + If8AAQ7/AgMF/wQEAP8EBQD/AwMD/wICBv8CAgX/AwMD/wMDA/8DAwP/AwMD3gEEAt8BBAL/BAcB/wME + BP8DAhL/BAcl/wwWPv8PG1r/GCWL/x46vP8kR9r/I0Do/yQ99/8nPvz/KELx/ypF4P8tRNH/Jzu7/xYq + kv8RIHf/ERdf/wgKMf8AAgr/AQMF/wEFAv8BBAT/AgIE/wMCBP8DAwP/AwMD/wMDA/8DAwPeAgUA3wIF + Bf8CBAn/BQkd/woQQP8PGmH/FSt//yU9sP8wReT/JEH1/xY35v8NKdf/DyXc/xsv8f8iO/v/IT/3/yNC + 9v8lQvX/JUjn/yRC1P8rPLr/HCRz/wIEIf8CAgv/AwMF/wMEBP8DAQP/AwIE/wMDA/8DAwP/AwMD/wMD + A94FAwvfBwYg/w0QQf8LF13/ECWC/yM6tP8uRdn/KkHn/yU66v8jNPP/HzDs/x0y3f8UK9P/Dybd/x44 + +f8iQfv/I0L7/yY//f8uSvj/L0/v/yRA1P8zRcD/FBlk/wQCFP8NAgX/CgEB/wICBf8BAwX/AwMD/wMD + A/8DAwP/AwMD3g4RQt8WGGb/ER2I/xkwsP8nRtz/KUb1/x017P8LIsn/DCW//xgr3f8lN/P/JDfw/yY8 + 8v8jPfX/Ij76/yU/+f80TvP/O1Xa/zpLvP81Tr7/K1DP/yZK1/8kOa3/Bgs8/wcDDf8IAwL/AQUB/wEE + Av8DAwP/AwMD/wMDA/8DAwPeESWD3x8zq/8mQ8v/HkLV/xc66f8cNf3/HzXy/w4jxP8KHrn/FjDh/yA9 + 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 + SP8bG23/HyCE/yIlkP8fJIj/Ghpx/w4OTf8ICC//AgMU/wIDBv8HBAb/CwMF/wsCAf8MBQD/CwYA/wwH + Av8JBAH/BwMC/wUCBN4FBATfBAMF/wUEBv8EAwP/AgQC/wEEAv8BBAP/AQQC/wIFAf8DBwH/BQgA/wQF + Af8EAgf/BQQN/wMDFP8LCzD/Cw4+/wQIJ/8DAxX/AwEJ/wUCBv8FAwP/BwMC/wcEA/8GBAL/BgUB/wME + Af8EBgL/BQcB/wUFAv8DAgX/BAIK3jIxNsMCAwTfAQQC3wEEAt8CAwPfAgMD3wUCA98IAgPfCAIE3wIB + CN8BAQTfAQIC3wICAt8EAgPfBQEE3wUBCd8GAQnfBQEC3wIDAd8BAwPfAwII3wMCCN8DAQTfAgMC3wMD + A98BAgXfAAEI3wECCt8CAgnfAQIG3wICBd8xMzXCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAAAQIFxAQCA98FBAHfAwUC3wEEBN8EBRTfBQYb3wIEDN8DBAbfAgUD3wMF + Ad8FAwLfAwID3wECBN8DAwPfAwMDwwECBeAEBAH/AwMF/wMFF/8JED7/FiN8/xwomv8SHnX/DhNM/wYJ + K/8CBBL/AwQC/wQDA/8CAgX/AwMD/wMDA98CBAPgBAcQ/wkPOf8WJnX/IDfB/xs43f8eNez/JD7r/yU+ + 1/8cM67/FiBs/wQFFP8DAwT/AwIE/wMDA/8DAwPfDA484BEfdf8fN7z/HzfY/xsx3/8fM+r/GzPp/yM+ + +P8sR+v/L0nS/ylFx/8SGlv/CAMI/wIDA/8DAwP/AwMD3yE1vOAYN8v/GTfq/xgt4P8XL+D/HTr8/x09 + +v8rSPT/Jjmk/yU9of8oUOH/IDS3/wkMMP8CBQX/AwMD/wMDA98fL+fgFina/xYu3/8hOvb/ID74/x87 + +v8aO/r/HUH3/ytH6/8rQfH/Izr6/yI58f8eLpP/BAca/wMEBP8DAwPfFy7a4B855/8nPeH/J0HD/yhF + 7P8eOPn/JDvz/yA+zP8jPtX/Hz32/x45+f8fOPX/JjnU/xMcYv8DBAr/BAME3x047OAuS9r/IjWY/ylA + pf8rTOb/HDnx/zBG0/8hL4f/LUa6/yFB4v8bOfH/Hzfw/yg95v8kNL3/CQ0y/wYDBt8aNeXgIjzl/yRB + 3f8gPeX/IDXr/xw46P8lQeL/L0TU/yo3k/8xPKD/KkLd/yc90v8jNJD/MkPL/xwokP8GBhrfIzXU4Cc2 + p/8nNKX/IDrf/yIz3v8sO7j/IC6Q/y1DyP8uQ8X/Lj6j/yQwl/8tPcr/MUax/y86rP8kMMD/Expx3y0z + ueAlKIr/Lj2Z/yc1mP8nNbD/KTq3/yQytv8jMdH/ICzV/yEuu/8dK7v/GyzR/yUzw/8jMZr/JTPB/xko + st8WIYbgIimt/yUvpf8gKIX/KzK0/xwox/8WJsn/FiTM/xcizv8WJMf/HSXH/yMov/8gKZ//Jy6y/xoi + x/8aHsXfBwUP4AsLN/8XG3b/HCOk/x4kwP8iI7n/HxyR/yMhov8eIr3/ISWp/xwjgP8sKaD/ICKJ/yYm + p/8bHKD/FBR73wQDBOAEAgn/BQUN/wgJL/8SE2j/IR6V/yEhg/8jJXX/HRx7/ykkn/8hIoX/JCGP/xYY + d/8MDlD/BgYk/wMDDN8CBATgBQYD/wUDA/8BAwT/AQQJ/wcIJf8SEln/HB57/xwffv8aGnz/EBBT/wkH + Jf8IBA7/CQUE/wkFAv8GAwPfCwsMxQMDA+ACAwPgAwMC4AMDAuADBALgBAMK4AcGHeAJCSXgAwQP4AQC + B+AEAwPgBAMD4AMDBOAEBATgCwoOxAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACYAAAAmAAAA + JgAAACYAAAAmAAAAJgAAACYAAAAmAAAAJgA= + + \ No newline at end of file diff --git a/ScriptEditor/DataFinderForms/FormDataFinder.Designer.cs b/ScriptEditor/DataFinderForms/FormDataFinder.Designer.cs index 630461c..5db0505 100644 --- a/ScriptEditor/DataFinderForms/FormDataFinder.Designer.cs +++ b/ScriptEditor/DataFinderForms/FormDataFinder.Designer.cs @@ -159,12 +159,12 @@ private void InitializeComponent() protected System.Windows.Forms.ListView lstData; protected System.Windows.Forms.ColumnHeader columnID; - private System.Windows.Forms.TextBox txtSearch; - private System.Windows.Forms.Button btnSearch; - private System.Windows.Forms.Button btnSelect; + protected System.Windows.Forms.TextBox txtSearch; + protected System.Windows.Forms.Button btnSearch; + protected System.Windows.Forms.Button btnSelect; protected System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnCancel; + protected System.Windows.Forms.Button btnCancel; protected System.Windows.Forms.Button btnSelectNone; - private System.Windows.Forms.Button btnSelectUnchanged; + protected System.Windows.Forms.Button btnSelectUnchanged; } } \ No newline at end of file diff --git a/ScriptEditor/DataFinderForms/FormDataFinder.cs b/ScriptEditor/DataFinderForms/FormDataFinder.cs index ec3da92..80237fb 100644 --- a/ScriptEditor/DataFinderForms/FormDataFinder.cs +++ b/ScriptEditor/DataFinderForms/FormDataFinder.cs @@ -13,6 +13,7 @@ namespace ScriptEditor public partial class FormDataFinder : Form { public int ReturnValue { get; set; } // we return the chosen id in this + protected bool editMode = false; System.Collections.IComparer textComparer; @@ -149,6 +150,9 @@ private void lstData_ColumnClick(object sender, ColumnClickEventArgs e) private void FormDataFinder_ResizeEnd(object sender, EventArgs e) { + if (editMode) + return; + lstData.Width = this.Size.Width - 30; lstData.Height = this.Size.Height - lstData.Location.Y - 65; btnCancel.Location = new Point(lstData.Size.Width + lstData.Location.X - btnCancel.Size.Width, lstData.Location.Y + lstData.Height + 5); diff --git a/ScriptEditor/Form1.Designer.cs b/ScriptEditor/Form1.Designer.cs index a4c5c66..cd74fce 100644 --- a/ScriptEditor/Form1.Designer.cs +++ b/ScriptEditor/Form1.Designer.cs @@ -33,10 +33,12 @@ private void InitializeComponent() this.picEventEditor = new System.Windows.Forms.PictureBox(); this.picGitLink = new System.Windows.Forms.PictureBox(); this.picCastsEditor = new System.Windows.Forms.PictureBox(); + this.picConditionEditor = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.picScriptEditor)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picEventEditor)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picGitLink)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picCastsEditor)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picConditionEditor)).BeginInit(); this.SuspendLayout(); // // picScriptEditor @@ -85,7 +87,7 @@ private void InitializeComponent() this.picCastsEditor.BackColor = System.Drawing.Color.Transparent; this.picCastsEditor.BackgroundImage = global::ScriptEditor.Properties.Resources.cast_editor_button_black; this.picCastsEditor.InitialImage = null; - this.picCastsEditor.Location = new System.Drawing.Point(96, 233); + this.picCastsEditor.Location = new System.Drawing.Point(17, 233); this.picCastsEditor.Name = "picCastsEditor"; this.picCastsEditor.Size = new System.Drawing.Size(138, 97); this.picCastsEditor.TabIndex = 3; @@ -94,6 +96,20 @@ private void InitializeComponent() this.picCastsEditor.MouseEnter += new System.EventHandler(this.picCastsEditor_MouseEnter); this.picCastsEditor.MouseLeave += new System.EventHandler(this.picCastsEditor_MouseLeave); // + // picConditionEditor + // + this.picConditionEditor.BackColor = System.Drawing.Color.Transparent; + this.picConditionEditor.BackgroundImage = global::ScriptEditor.Properties.Resources.condition_editor_button_black; + this.picConditionEditor.InitialImage = null; + this.picConditionEditor.Location = new System.Drawing.Point(175, 233); + this.picConditionEditor.Name = "picConditionEditor"; + this.picConditionEditor.Size = new System.Drawing.Size(138, 97); + this.picConditionEditor.TabIndex = 4; + this.picConditionEditor.TabStop = false; + this.picConditionEditor.Click += new System.EventHandler(this.picConditionEditor_Click); + this.picConditionEditor.MouseEnter += new System.EventHandler(this.picConditionEditor_MouseEnter); + this.picConditionEditor.MouseLeave += new System.EventHandler(this.picConditionEditor_MouseLeave); + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -101,6 +117,7 @@ private void InitializeComponent() this.BackgroundImage = global::ScriptEditor.Properties.Resources.background; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.ClientSize = new System.Drawing.Size(330, 371); + this.Controls.Add(this.picConditionEditor); this.Controls.Add(this.picCastsEditor); this.Controls.Add(this.picGitLink); this.Controls.Add(this.picEventEditor); @@ -115,6 +132,7 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.picEventEditor)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.picGitLink)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.picCastsEditor)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picConditionEditor)).EndInit(); this.ResumeLayout(false); } @@ -125,5 +143,6 @@ private void InitializeComponent() private System.Windows.Forms.PictureBox picEventEditor; private System.Windows.Forms.PictureBox picGitLink; private System.Windows.Forms.PictureBox picCastsEditor; + private System.Windows.Forms.PictureBox picConditionEditor; } } \ No newline at end of file diff --git a/ScriptEditor/Form1.cs b/ScriptEditor/Form1.cs index 1008a97..21d201b 100644 --- a/ScriptEditor/Form1.cs +++ b/ScriptEditor/Form1.cs @@ -21,6 +21,8 @@ public partial class Form1 : Form Image imgEventEditorHighlighted = ScriptEditor.Properties.Resources.event_editor_button; Image imgCastsEditor = ScriptEditor.Properties.Resources.cast_editor_button_black; Image imgCastsEditorHighlighted = ScriptEditor.Properties.Resources.cast_editor_button; + Image imgConditionsEditor = ScriptEditor.Properties.Resources.condition_editor_button_black; + Image imgConditionsEditorHighlighted = ScriptEditor.Properties.Resources.condition_editor_button; Image imgGitLink = ScriptEditor.Properties.Resources.gitlink1; Image imgGitLinkHighlighted = ScriptEditor.Properties.Resources.gitlink2; @@ -95,5 +97,22 @@ private void picCastsEditor_Click(object sender, EventArgs e) FormCastsEditor editor = new FormCastsEditor(); editor.Show(); } + + private void picConditionEditor_MouseEnter(object sender, EventArgs e) + { + picConditionEditor.BackgroundImage = imgConditionsEditorHighlighted; + player.Play(); + } + + private void picConditionEditor_MouseLeave(object sender, EventArgs e) + { + picConditionEditor.BackgroundImage = imgConditionsEditor; + } + + private void picConditionEditor_Click(object sender, EventArgs e) + { + FormConditionFinder editor = new FormConditionFinder(); + editor.ShowStandalone(); + } } } diff --git a/ScriptEditor/FormScriptEditor.cs b/ScriptEditor/FormScriptEditor.cs index 92ede19..6bbb30a 100644 --- a/ScriptEditor/FormScriptEditor.cs +++ b/ScriptEditor/FormScriptEditor.cs @@ -2960,7 +2960,7 @@ private void Command4SetCheckboxNamesBasedOnFieldIndex(int field) chkModifyFlags64.Visible = true; chkModifyFlags128.Text = "NOT_ATTACKABLE_1"; chkModifyFlags128.Visible = true; - chkModifyFlags256.Text = "OOC_NOT_ATTACKABLE"; + chkModifyFlags256.Text = "IMMUNE_TO_PLAYER"; chkModifyFlags256.Visible = true; chkModifyFlags512.Text = "PASSIVE"; chkModifyFlags512.Visible = true; diff --git a/ScriptEditor/GameData.cs b/ScriptEditor/GameData.cs index 2fb1781..d08d452 100644 --- a/ScriptEditor/GameData.cs +++ b/ScriptEditor/GameData.cs @@ -1603,7 +1603,7 @@ static GameData() ConditionNamesList.Add(new ComboboxPair("AD_COMMISSION_AURA", 10)); ConditionNamesList.Add(new ComboboxPair("WAR_EFFORT_STAGE", 11)); ConditionNamesList.Add(new ComboboxPair("ACTIVE_GAME_EVENT", 12)); - ConditionNamesList.Add(new ComboboxPair("AREA_FLAG", 13)); + ConditionNamesList.Add(new ComboboxPair("CANT_PATH_TO_VICTIM", 13)); ConditionNamesList.Add(new ComboboxPair("RACE_CLASS", 14)); ConditionNamesList.Add(new ComboboxPair("LEVEL", 15)); ConditionNamesList.Add(new ComboboxPair("SOURCE_ENTRY", 16)); @@ -1617,8 +1617,8 @@ static GameData() ConditionNamesList.Add(new ComboboxPair("WOW_PATCH", 24)); ConditionNamesList.Add(new ComboboxPair("DEAD_OR_AWAY", 25)); ConditionNamesList.Add(new ComboboxPair("ACTIVE_HOLIDAY", 26)); - ConditionNamesList.Add(new ComboboxPair("TARGET_GENDER", 27)); - ConditionNamesList.Add(new ComboboxPair("LEARNABLE_ABILITY", 28)); + ConditionNamesList.Add(new ComboboxPair("GENDER", 27)); + ConditionNamesList.Add(new ComboboxPair("IS_PLAYER", 28)); ConditionNamesList.Add(new ComboboxPair("SKILL_BELOW", 29)); ConditionNamesList.Add(new ComboboxPair("REPUTATION_RANK_MAX", 30)); ConditionNamesList.Add(new ComboboxPair("HAS_FLAG", 31)); @@ -1638,10 +1638,8 @@ static GameData() ConditionNamesList.Add(new ComboboxPair("IS_IN_GROUP", 45)); ConditionNamesList.Add(new ComboboxPair("IS_ALIVE", 46)); ConditionNamesList.Add(new ComboboxPair("MAP_EVENT_TARGETS", 47)); - ConditionNamesList.Add(new ComboboxPair("CANT_PATH_TO_VICTIM", 48)); - ConditionNamesList.Add(new ComboboxPair("IS_PLAYER", 49)); - ConditionNamesList.Add(new ComboboxPair("OBJECT_IS_SPAWNED", 50)); - ConditionNamesList.Add(new ComboboxPair("OBJECT_LOOT_STATE", 51)); + ConditionNamesList.Add(new ComboboxPair("OBJECT_IS_SPAWNED", 48)); + ConditionNamesList.Add(new ComboboxPair("OBJECT_LOOT_STATE", 49)); // Add skill names. SkillsList.Add(new ComboboxPair("Frost", 6)); diff --git a/ScriptEditor/Properties/AssemblyInfo.cs b/ScriptEditor/Properties/AssemblyInfo.cs index ac37dc4..e638e48 100644 --- a/ScriptEditor/Properties/AssemblyInfo.cs +++ b/ScriptEditor/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("6.1.0.0")] -[assembly: AssemblyFileVersion("6.1.0.0")] +[assembly: AssemblyVersion("7.0.0.0")] +[assembly: AssemblyFileVersion("7.0.0.0")] diff --git a/ScriptEditor/Properties/Resources.Designer.cs b/ScriptEditor/Properties/Resources.Designer.cs index 2edb8db..f960c89 100644 --- a/ScriptEditor/Properties/Resources.Designer.cs +++ b/ScriptEditor/Properties/Resources.Designer.cs @@ -90,6 +90,26 @@ internal static System.Drawing.Bitmap cast_editor_button_black { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap condition_editor_button { + get { + object obj = ResourceManager.GetObject("condition_editor_button", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap condition_editor_button_black { + get { + object obj = ResourceManager.GetObject("condition_editor_button_black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/ScriptEditor/Properties/Resources.resx b/ScriptEditor/Properties/Resources.resx index 97ce261..26d6417 100644 --- a/ScriptEditor/Properties/Resources.resx +++ b/ScriptEditor/Properties/Resources.resx @@ -160,4 +160,10 @@ ..\Resources\mage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\condition_editor_button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\condition_editor_button_black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ScriptEditor/Resources/condition_editor_button.png b/ScriptEditor/Resources/condition_editor_button.png new file mode 100644 index 0000000000000000000000000000000000000000..7097bbd0732fe148722053859ead5386b2c7b7d1 GIT binary patch literal 6182 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 literal 0 HcmV?d00001 diff --git a/ScriptEditor/Resources/condition_editor_button_black.png b/ScriptEditor/Resources/condition_editor_button_black.png new file mode 100644 index 0000000000000000000000000000000000000000..547bbd236006e6f65b93cdd2ee79600ea204f30d GIT binary patch literal 4233 zcmZu#c{J4D`+pBJmKkda+4tT`_Uy}8vPNTHB1YNAE<`eR$ySL8F`6tz_O-%TN;C~3 zdm$gj8d*d5&F7ro`JVIpp5GtOz2|w(J$HHT^Stisxerk0hRkptH~;|5#zy*<)IOCe zXa+iJ%Lr8!r*=?J9WxyOsLe$DMZ^9z2O2qq002wpzXEA_qc*RhVcx&E9|ea?pKBfE8vZmm#?B}di^ z3rUf2N!wIrsC6o6bQV+YN}Kjo3-u!lhs#>xqDhiTf~Hx-dNJYkMK>vHxikHDC63nA zDTS(I3b}}?{58_EXPQxamAj<+!Zr_&8T03V2QJTY1|nKu(=`5&X6y~(|Eg*ku*m1D z{YwvD23|g~i-XCokwV;uuUfWn(wj0OV~qjh6w_w^@48OXZ98AtavSbDtS;XjzQ0hA z>pPeCx4Mt>6LyPI6hrqk=H%c)&%*vp3~SKAa#@kCQwE>vnbd5T`v)c8=D&swZtc72Y0eJ`y-bp8-4%GXKGhszQ4WlcX!OiW?`e_lqE~<-(^J;3i)|=ruK=~!jtP-jJ!&in&7qZ zT4KAj^Vpk3}6Y{OVetG{h-@9&+N#m zlkg)1t$6#pVcAYCK6pG6znbE7%;_z_VbfvC0Gz?ta%#3}!Gmv=U1w5Ovs+URnq zexE$Ei8`%%_X{3=rDZtHlqgtGx}mrG@X|1r9i;5}UGPNv2qG?76@HpYZIAw1tpm`hbtZW!K+0Dh=zl2Fj)OpKivhMAtfA15 z5|OAiiJuPY_JF}}&)lBx%~VEJIANRJ+KIfy7#dxrh``^RU zWB)J*4vIt{?$kp0bnh&GE%}Hnh=1$#`2O+XdDBjF4E;Tp?8hh+eu5JzyjX_pbl^bh zShPf}zG)`)P4CJ+$a%;mqogEcN7GW?8?^C$I|Jfun*C|>|NeIKN7Tkd z09K#(PGRkZBavdN=_C&72#@+wK$=I7$ZnA(AcX?9=IGa zAS$yndyg-3TkCL1lorUNArhH<$Eq6rF4=Sht_fjuaeJWJF3-90)8u7go%8pOrAFXsaJ6i1$;2l;tloe;_iN~6vfeN{ zBP+))vTiF>g*Fv85c@TZq8xl%8fBSI;|mtd8hLXl(zUYImASF)nSMH>TaK{GLUbO~ zz^5PxY*y0Hr(|Je#}taDMsdbW^s5hG!k7Ld`9eeQo+IXwFFk8>-N|1j)Wd%%`kYeV zpY>lKR3nw*YoM}TECreML&78Ol4bSTqqEAh!qWiHD1@OGF8i0WrQEbGV+{T^{0=|J z9MRNga|3{t(Q>9@yPR1nK)bGbL5R2q7eG`qJx4^A(|{=sK*{@5toUFc6HSh%QDl*= zj9>k=SQ?I#((YTk*Nc-W)><0UT>8{acPBB|C&%8)?`EK< z`0T`m%{3YlU!=WOWW)%wBM1QZ9{bxt%_Rgf5$ldimmcax|8Cab-2$sD`eBT3xTx9l z&lRI_YyrbYpO094lh9u_HSV7#n_X%cPivOYiL=emDXg|FI7@*R5u*FzEfHg1S*o_O>t#-tq^WI%B z<}VDDDw~=a*-xKBMuBq@ZTRZ_h_gk>Q7;!aS}6iiZ!0iTWO}d$#$(X!uA5PafJo@e z^>$kND4!_Wxc1%3wkD_$vRQG{3A}_yDs#50@uAUEdOv8H_1w(ka)fK_={DJtT)7RD zB2NgJ?|)`~+a^Et;n>Y|Vx1LrSaNG}s^KtcDIwo-4%fgSjeaU1xao*^Ro8R+mpY7l zw|ztj{9Q}|9lsBfZ}NL_fF=wy-1H``K%eeFtDsUe7%qM_+?ND4@-f=~l+JY6S5JwGz)0< zM*9(&7^er8T`%%?M4MQaj()wCA;s(Ga{MB5=Uc3$G&1-+tY(&hZ*VB~g_h4p43*VE ztUiF;nsmm79vqO#e}_2A_6KwvbAq1a0!H<)wHon-KfmW~N=6IzNg=1(1KM_9?i86P zlGS!I1T=jFbF5a(atjMxjx7bh1^heR6FE2?Wk{PP<@4f~{CK#zx*+nwQPy6j)^Iqz zi8{^Iv={H1L={pGm(u=SD?xx++c>q+*1Ebahk38prAnGn`9zRtBER-wyz=yV=fk0j z`)2=#EdLjG{*OAy!U=Bu@Ok##-en$wCp%Qc_$^ztg*29YIqi{Kgla|op`vm3gR>VZ z|5A|^JzQ$GXJPZ<0e4GfN8tB6V-x$T1y90lE>TF>uAZ(Ht|D)-BVWkH>W;mco``45 zV=gg`0r5T!HlvL4^t&&govH<5r_{4KYRC-(a#m`kg8$U*kuQR4L7v%XeqU-)Q7Stt3bs zy1JZ|7<)9P%&O_PiHpAfDlop7@U9}o-`kfz1mnm9H9-)!uV2^(ijrzY@D&ziL#tof z$OTPPvv2n_d$g85w!919s50#2e2i;kIPQ{5kZ3P|;vuBpskM|APtQ83t%!2YQIS_V zGwkT4y&iOpg-}UP^y2W~#@{zDm%S`b>@_`!H*hNQo$YugKh_^hOP}^(3%j#K$n-ca z*3{)06I~Qh92PtzNnNM114E%r^`T!Sy_(idNN@6Xt{BY6}C(0Cb32;Wp0V_W-yB-w(f1rxP04K zIw4`=Y~8l_+kH={Ecx|#>Z)A~K#$*;sP`;gh0?4TucAfu)s?w={h1`$sS6+pyC2Ih9zyYuQhlo?h^n5A)?#rVWOexyPx}MZiEhdsU^k z^A);^1c^huZzAlYJP4x@j*(xrN z&sRKUvvDsFLB6sn6NQLpe&dMzV9#he3WXDm?l4)Uu)lthU*#u&DI>fFuk_`PUu837 zFC&A`uMH~ogX4-UW;L&Zt-bQYK3QCWnb6TKSl~b5{GX=Wx@~PrKz4J>TqpGSmGE4p zkcL6_^@rbm5*x-DN_?{IUzYKdG!D|Twd`5DDnyA-9mFJarJ1t}xdrusv^|F1izIf; zaCx#?EqGf@3}wWmTRT}gWZ_E?STSh8B&AKIZ)pbIYc@_(%^9+KAp-@cGCqx#C+7>j z_MOvP>q{|rjAM6N+x(Mv(JwT0Dm_;CdzZ#>T|PAAQl@BL7xW9Jhbggqq=q>@OHfFV zEz@ab!Q!PH6n$)m*JDu;_WwBT- zc1v5Eg{$9kXT)OZu~;mA|408XwOCSoSIX7={X&Pu@^fy8a}SSLKEp8In}3&a-{1YS z+gDiZ_LP-jx7kw;hU=q|YqzDGc1z0XWaL^>4u;hXmnDTrDPEkiT6xy$;CW|u*c`T$ z)xqC*#=_OgeRdb`c5;uynzHe{J^9{%Y;w7*%E`6L&K0?YT(ag^h5WKuZL&M^WwRH_W-XT8 zUd-owzPEF)RW>Js`hSWn=@mvxn#9DPsq=GIp%%H>g3&au6AUxI_$DAtWMtTav>w{widEBk4j3KRbJMu zf`S$~T|wSe!`}*!A%}H2<+QqxEf+a>&dGD;UCd$D=x`x7>vHnh$#+g8XI6ghLoPGS zT0T*JYYy_~oRFVqv+pso8@bV)6&;&-twyi5LgXsuTE_eyxeD7=UNcM8_2;Rg`h1mE zov)&bGnHF3P5GsRDky1ZJpnmvb&Oi%sNgxCXKfbNV=?PN=T_T^xy+nqeg}JRL!VYF zaxu(${%`V|`^|G%`LPiP@3OI{7IbGd^I1w6RkAxn$}8zpVeLHS*L<4mH&q+FQlXYR z)DXW-75-~f{L0OxAYLy?HMCj;#DAbYQU*GG8To;Kx?lR8}!fWgg`Ae^*sa*D5mj zq}nF7t9{CDHIMIB;fu2He)hbnh}n{|9qCFQ57q;i@HO9tf3ZDcKG z9lRgi;rD+tw~^m|LVoP$ztcZ)C&NHK8@7o2_>`S@*=%{}yNvgGv4u93)J#@c{TZro zU#zO=)$$E5RATm4HO<8kfl*=Bt zj6LSF7hdJ%cdMvss>(xWs37K@fkysq-@9V%%`sj_L00^P?H z?w2CN?<+idSkcLED>h}XI_AEk&UtStF=M0Z2Od^c@>Y4`zgJbmH}H`W_5j_w!Zg{)#FRKUHw(4t31h zpuX8}D>;5tLG)bPyHCZ*msAwnto*um4Vda!1BtC$`zD zRZ!SU{Fto5x-*nhf1ygkKbNojZnaFTQ}^uG)jD;bS|^Uk*Rfx*zV{XEJfQlPi~_wo zRGHi$r~6qI26o8PbyWVL;|foFpunW}`22x_15$X>`-)6Iq{!6$icVy(t>@J@^)Xe} zeG%J_$Ysq}5%LxjlkzOsv6X!=G1%lLv!1^nv>I8E!$Mrxt0Cjsz}#63b((l+E_|~u2)#YPPsdGBKtlC29F~% z>qGC2Q;(}{)^T;sIij&M-qFkp-qyqg`{f;7r<#r>>Ye|hVqFWATR2rVOQj01qY~uJ zwG#jENn=mO7yg0l=DSpR)$~kt?K!G;e@~^JD^wm?pvc%7HO|B@r?cl{@5$4BP(|2> z!?Rc}|HCQ>EmuwBP9+A9DcXNn@xh}?3?IdJk0~;GlxL1(Z|^D2|9j^i(a;&MY0^3C zH9YqrCHrqw>#T<~c)@o0W^Ph+PFgK9)~ho719EaFc>?=&VngHvD{;`0&HJC|1F6Em z*E6NT%T<@SS+Pkg6rH|Fu~|D+-uH^?`;Mc}4;AcxUv;fJR1{hwSKa-}^*yDkwq58K z9S=(ZeAd@1`3FCcZ|GfxCcUdTqi5DZjh*(2nkVjHy`LlAOj1tKY}IsLu8E7cDsP^~mlvW8g!1M&6ef-3P{ws$=&1 zn)%tIYMZ=BIR$4ar+h-C-m_HSbeTF&dkpzsSM>BZR6lLEyyIy#Pu{3t^L5J2AI0XY zk)OIMhrB?2Va1LQx;z~R6zVywnx>5E znqF40V~-;J$d0_VeL6AtTr>QhYDV5wE$gZqcvp=xj%oC~BiR2_tog?Z_Fk#JQd^#~w zje|!su|DkB=(zC}Io!*XA77@j*5|PGXH^eBrL>?F*J`Q4MjQSyTkR7ZCTdL>pO|w48 z#-E-!@2O?V5k&`%DBN{ip{@_m%litkcfr076&?IgjpT~XX*(4kzC%TIv&cvFr;>6y9X2=F?NT)_7UfMKU4#9)D0YG500=G$5h82g~mQ47k{9pDaX|^eptzYgKF$~ zSBakEiVeK4hVBnk*M%MSh-Xdg+RJ*^D>8J297O}Hp^kkpc0`T$A9nNcex!Ysz?9eZNVV9$r- z0Af(L)PVeTtgCi(uY42O#W>H8QA>;-qOLoHKFD9#VWgi}i~bvW*eBLr%jep@L)aDh zX7V;-*FshLKSy4UWcT22<^R~0xTeY)*Jj*ZJLK&p4h;N74ft_j4SVXrXT0p254nTbTmW78sYk+nyX0wFr?#QhO7!2Vyz+VYay|N{j%E++ z?7?5eV9zRekLCpO;y2Jhb`_ee?&qdV0+bFcczVUy;pRsYnRRT=pze(^1}&0MYC z)9__tWOWxd(v97BJA^3TAW6!vhvoQ0;wtH6#pi)HIvZ%reWgN8*QlOawfEQx*YqPb&0DFlFTAJZ ztoKyMywx3txb9aIHO-VW-qg?p&qaT#BInmKIiRZk zw^WO*xcR>yJp?<62c7%K<@=NvIw0aA`@bI_drlSJZ&OReSp#Q4&M4-*nMbXfXDvuo zx4oNj_q`+U@at-xvr7}_@1a&BetN&JoRWFi;Cb>lU80srH);Gc>oxl2UF!by0q)-~ zH-1>x#l8=|rJi~FH0|t{)iQjmTt)L#P&q^O(Tk|5Z&csOo7H>vn~KkSn>f2)mB?R< z57hPJC*6nSWe?pQhq)fW-}bVXZz)2IjKJwRe z9>~=8zNPxXH`I0VJDPU>+v=aYis!GzCVx&1bfdaYU#7wHGMfAaYUlYW>fl$g|9#lb zL44pHe0C3Km{&A>dP+TW7oyK!seSxrjm=x4si$w%^z*TWb6-^ZsT;A&tqKqCLe95% zj@;FAhrwqoVVf28Xmr0Q)WG^IcIOu#91k|O#3r? z`La64-_+>Lv^!9 z>uVWL*RJed`iC=Wnw&;&FR6cYi~7chW5mjZepSCYH<7c7@{8ey`!P?$@-lp3@lduyJSyXTBHZORi8Leh25ZZz6vS{#>1k zx9-kFx^_~>Y{{N)N9He4&&c(PCN5K~^=b{xU!yp>sqTM8747UfwPL7khk|X})H=LI zLsOqr@6avs`oG56bBg3awYkcepHFXn{yPijW^wR#c;;nb7 zu>5@Ns67?wNN1uw&nr3nsG0_@Rw(&-Ra6Zsub@eV)w95Nu2;+K?bMrp;r#ff+%2yv z(DpKQ%vSZ!c}kN`yG>QzPh+zq;36l>8~=d@sF?@nY*Pn14Gq6YoL#Hr)QxHze^Pbf z%auzk%qf_RU0tkX*PYnU1_cK<;R~zfA6u)TQ`TwfyayEyUj#OJk}ADFC$BA6WA7Fv zI$q$J6~yMNm0$VURJ?mrrmcUKI(qJqyZ(#H&FNKsQK#I|dHBrt)i&*R4a|RDEt83R zeVh1h6aKqKiC*+N;|ccc235u{#_uj6=U=aZi6=EYWt*D%HY?iwBK!0b>t){l4b;cX z(|0%fdX@Z*zm_LFQ^1VAMIOG3IoB%G zN^RHqH2ZNc_}H&f9fMD2di$1Xxcy-z8-62C)g=lx{!|_8^T7PY8as7`rkwU9apVTY zyML;t{@C=N7pZ$1wllbtwJlM7 zcm?lWshZeg*1j}V-T0@ByX9g0`!Qr%rRM&1YVKXFuHmKX?EiOF*IobzFs$OjG1b?d zu5kQ2>KeJ7{JKhkW@JQP)zRlvPM)kut^vPT#X0U-RmJ!mUa#`#CY2(0acn*K-FlUU zo>o<4CF^1BtTn(o8@Sia8N?IZAa8UH?_I1==RNGh{R$=?lrK(P3bXFedilc7b6uyp zz*{lFIA%RQO-AabH2G%$&Lj|v^*%U(M@2rYRr3lt5xq^qq>IG;8iP9 zR$FVvnKuER`gQ8YYgJQs6Ijq)^2Hv(K8fdMUETL!v-hcW;4yU%EmwQjdWFIpRO?-# zy698b%rfj^m8v)cRrofL=aJjLM)e_v?>TwAtBJ2>?q^jKd`4CN<*a9!8Uia646P*2 zELKa~6H2t+uF~2|lwW+7Y8$?z-ho@O=Lc0Ee4H9|rK-J8tEPdyYgi?Zxw@CbE9HPc zgENBzyK?(fTK*{o!dKvPe^4;;5I(nvJzknKZr2n@H z)Ly2b`xj~o-=)S7xVZ4CJMcDY`ibo&D_HG~s|C1ULUza!ZL$x;Dq^{uG#4lHC^54|K`oh75@*!_9^bmV>xBUJaR9Ahu%8S2|D$B8EO2Fv~;GS{} z2Ll#wwH0w@t0Bj9sjBX5*8L;ZxUaf_e^hND@~`J2xhnf*%|lmk8S&)h$bKg}ctFV*ejC3N zowNUe2NVX63VQETpy4JpfN$2+F;B@{=4s+wT%Rg%+B11z?53X11?zPfK8LH}6)k3f z!8pNpi_196RDMg*;EhVe{wTNaepOfBt3>2cwIml%pM77YWv4P`sG;F(b#{JV{R6*N zvgua}M}DWK#GUGjKcLPCF+KP_?Eg%axu>bdLk-b%rP`DCvF3+(&%JW{?~*@pFS-04 zZ0}n5r*EN?Q?L>62uqA}7`#oEi!;2h1OCWhT)DDa;4Lg*@SM{eW-Xl4TzQ7aG(1}c z&x5ZQ%v4>~H?YGiR9{V<fu%q+WYU;Rz`Oi{u-O}|&N<#%dr`&V_eVSDI1nG1L81d}&s2CKE0QO-I7 z%FP>6MfrsaHC(B9_}>+a-mGBwUloensBr9m<0s!%Q4Kny9?5Y`QGM|xiuiBl?++;u z#3sP8!~Q=i7QB;z9)kZ&e)+lzicV1u@3uLR+3IG#iY%Aq1d}%SkHH_z`O9U7;ly3` zj0G93E^u}idth)P!ymx&=Hk;iS^n186+9%*n)7Ft<1yTr4bH(ip^A#n5z~ICde5)q z@mzzC-HhM=R`r2PRpt3Iaqe4+_^x1$caVP`P=oIQ1^n2w?D!$Pw4EC)ZK?+^j?+yh7wA zbpLz#{6Ax@UsGZ69NrD5YOO*SrR;mL@;ToYfb|r@eHGa)DuGWdFz0pVF3Mp&R^kk? zCKntf&*h-cz?Culq{HAUtkuaH^76r}k>3t(ZMgd^U!Ij6`Qa1HI;_0I4mO|d1pu40 zT1y!b<>d~my6Q}P7$5OnM!j(*G5=TO^-GD#aHz=au(zRKFESfUhdpNwC-#ub{^py( zy9NC+OO&#m0RfbD4(Q%&vj& zE$GAaFgWw*T_`wlHET6ovy(muhr{?tDgF^B2aT(&@+9RJPhy>%yA6)U-|Xz2lbFH& zW2=@EXL01t+AFddo5?X;E^(b656-&WL(hZ@-MaXj4PMU$KVY}!r-}-TGfuciyRjkU zv>6*Go;r*_n025VGfaLny$LS9%jP=f$@0Wz4nAkGRrb-9^&j4ajCKp0qO}HFV@(#* zgMcmKTV@!ZG1r-k9O#Va%)5==vhPIy<{opu75v}HeOV5VcN<$avN|1k@Qr1ui!S=+ z%7TK@G%}|xHf!3R>qx_QFznfZ>}g_AI+u~h$hSJuPD^f@IL6>=M^m6^(Kf8T7 zxjNe$g*~P4wG=Tn<#bt7#Gn&BS*GvGO8=G3MO@3JZ_4y#o#@3P9;6&5-hnxN+*NGTh5TF++K|J;0%cb}X z{>`(lY@WcUhymH&Bc46cd-Rb{^X?PNqXZn6j9>A~g{lA|- z>uy51o7{j;@xCfzT1-XETkQRksv56Wv~RJRMhsrDUJc*^m63l@d4uVp`HTvR zrz)?o3%v!9!}Ob(czq&Hnmk~*u75bc1OGO$j~JTeFl^K@IT0|P5tX>lR&C_hV6ux8 zp7s(P6nG%qUm&bGhh4ESBnYo7+wY|rW;8|O?;Blc!{z0kv7 zITB>zGj?N1+sHFE;+~VbIlpvFCH3cnA^ezrl?T)|+0RAO05a3os{jn~AH;pY8eh2lG4a1?e1@Uqz*pR8T`- zRpfHG!-wG%x6`w<8@&B5U?O1PZF|+wVfs1fM~T8q!M6k_!Q+h|2gm$CEi;d*b>3TW zVw=@DWhq$T=dkHY6|v{})CSqUv22Y0Pn>V6xNJOKUHb)ayMG3ceE^*GWhJH_hX313 zZ_jfoj64MfvqKTXZHN4T{cu5f1b| z^6(Hjw21u49^e!IfbUP0MSha@fhj~MuYqshq8c~@51g5=`yCaBRx01SP}OZa;e_GQ z;PZX(sy;aJ$fTq6P#jj*G|qhSi&R)S4_@kL>i@zvHO$VaaW?o&?5AKm_y+ZZso{(a z|8@TxC+|o%PTr%cu8qoTTCCcEG~6&4bm!aPZ(Gs(YuF#05_8wWY1a-PS3T=CJlWux zNAQJvz-+z;{&}~$&v;R-XVHT)Wk1~6%ix>rL(RF^LM?LS;S>L%`)tjO{WbOAT~L299-`pxY(QEa(_|*^^T4H5j$rIv;L3yT4Vq9joZ>yq3z&*Z-N)?04Lf` zU&sOY*JJRN=zQ{f@CJvndme&=^}$Wnb2T#5nSB_CL#7v}2@WvP3pdvLKDfQ%Kb7Uq z6X52dJ~$fUl$EpDf8kqGrHQB0(T6c z{oV9n_0wZ83Xd=aK4g3k{c#8JRl^y>vG%`*-rk2dg8zm04Gz4T?UO6_oX`C9Tbeq` z_~S?ZUzymR_V>L3KLYmyKa!lXSA8?K(Kq-9`Urom4tRp_Vh=dK zr5ZX9r9Uk!tGCR4yvKJHY;=MtBex=L*)J!^o#jt?oLIHat=9 zsrxl}@_KpOe+e)83$@LDM8lt=7mOYyADnv~d|U(XYM=co*e-Za%VlaGyG0}O*J|(_ zaQ8V|={+#M0teYczlGr+;Q~W&CrRR1Biv22eUU0WU&0T|$(eQ)kjvre(jNFJKRi`4 zJ&%cb#Q8bc|BPJ%F;10DHj&6l}d!G3pQbq08WVJ_9@s1toICy>Y&~@_1 zJ`D~&n>>F_HV@R$Kj3Z4fN{R4e&Tz)^D-4z%mu@|2poN>+NW;MSG4th`iMWDYVKc~?gR_0ulXXl z>rC*si|L`f9j^H~@b_id&2q)Ty*s8quJFKB@ETXEa|AqpXbXG=dTQPde))o0dzZo? z+zglW@9fzU>>u8ybt68wSxvovQhDu##JBIMarkjX+Ska}@`S1r*RuXa>8{Qv)!uRs zxbR)-o4!c>)9zPW?@xGU9(dEY>CJlrxt@cIT8lldlecN3+=-1~*qhZryljZQNZ%^H z)4E#jaiY`d|+aID=5e&BT z8MXC4CST-IdXndZMV+r!?5k}Ee}j9dj;#i(e;VxmIXD_VN5Jmk8OkCXxUNwJ7`_M0 z-Va{x_VJmXuqt}+>bWlvej1#4i5kIz zYkil?9r$6E2MZ>i04p|FH8?$^u6{*|^CoAzTCm|>Rn>k4Z2Cq8V-K;O3|0 z4Z}hB;f8{Xl?W|T%>NL$l)+zDf_Z{NGq2$nLSV9y*4q?qyj^Wg4}zcGLJ$6hs;c=6 z`+GeY-a@eL#qxsL27C{xp>9E{*kwuQQzJXUXKnUs_{DBj*L@yr7Qc4i$=ViyH!Vf3 zCE$Da%J2S;iVJ3e5q?3f;HhEc@kGJ6!HmR5`ZwB}Kt%^%8 zgohlV7Kl(E^P2;H-(qpuIbR!W7kt!UW5negYG%`0XK);+BdQ{LJL{@{0OouXI=o2{ z_>gGg3i`CqrPdx(UFpTlb%&zS2NaFmqeOIp;*smX*ndo4{sr{lPOvU;7S0rQFwAUC zoXvsYw4Cct{Pu%$6nJ4Sn1|6v78m4PlErtdMLZK#Vc|?w!^e2Qt3zO#-q0`LY`zDU z4K^QMAYb4Q;PKa~s^Vhss>!@B%9^Ud>+-Yj&EtHQ#~gXAFN^yT|2a>BKah{Xb#ik# zhnVxy$MbTZ!S%9z!UoHvjA=0fs0!&x&tnerJ05;hgZ(?w2HSFS?+N_JoL9^+^MMnYnw8p>-zjC! zqz1osI*dN(X)b8v+(oZ{F8HP$-EwX_fnT9R-f!?UgDaWe@)#`4{3gcWfX?jxnlo>H zs-wMU1?TBBb7hCYb^aFH$+bDaVK}3Ltr#qb-;Sigans;*j65)%Jg$6iw_->3G02*o!uYdG=GN*{EvNMa0&xU_!%GL6l46>?7#kF z4J)(jc7TOBjjq@?XJy*ya;I&MLTrdNIaxnA7Wg4LFza??*N+ZX@Ow0Hu_HtR+qH}&Tb#osmx*L_Y9@*I{oCaOXvw)MjtfiK+b95 zkvFOR$w9>VYX4WTlS-bW#>J05e!j4HC{yOUgxYu!V;l8$nlsK{=&h%o897Qn>AQFEiYw!^h3pl`5h1a>~ZRJFK6KJApN2v^e>ET;ao`HA^o4GA355;nOgG#o`>_n zz8m`XW?E*wq#%6*iLnLrAk%}*JZ)27pr7Cu^ff-gZz5iye~sFiIy+9^Ubt&9z3m+a z-$~bZ@5%&+c7X-#;4Dg?8a-AX&J7WsX{9HuvG;dsAG%qMfED%8G_UP9{1mM7_hcv5calSt0L0+28F9C9BIB+HX4c~ + + + + + +