diff --git a/FModel/App.config b/FModel/App.config index 2a2217b6..3eb2abcf 100644 --- a/FModel/App.config +++ b/FModel/App.config @@ -115,6 +115,12 @@ True + + True + + + True + \ No newline at end of file diff --git a/FModel/Forms/About.Designer.cs b/FModel/Forms/About.Designer.cs index f8da4e70..136dd1f2 100644 --- a/FModel/Forms/About.Designer.cs +++ b/FModel/Forms/About.Designer.cs @@ -40,6 +40,7 @@ this.label6 = new System.Windows.Forms.Label(); this.commitHash = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // @@ -120,7 +121,7 @@ this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(56, 124); + this.label5.Location = new System.Drawing.Point(127, 124); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(46, 12); this.label5.TabIndex = 7; @@ -132,7 +133,7 @@ this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(108, 124); + this.label6.Location = new System.Drawing.Point(178, 124); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(61, 12); this.label6.TabIndex = 8; @@ -163,11 +164,24 @@ this.label7.Text = "Commit:"; this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.Location = new System.Drawing.Point(53, 124); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(71, 12); + this.label8.TabIndex = 11; + this.label8.Text = "• Waddlesworth"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // // About // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(467, 145); + this.Controls.Add(this.label8); this.Controls.Add(this.label7); this.Controls.Add(this.commitHash); this.Controls.Add(this.label6); @@ -205,5 +219,6 @@ private System.Windows.Forms.Label label6; private System.Windows.Forms.Label commitHash; private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; } } \ No newline at end of file diff --git a/FModel/Forms/IconGeneratorAssets.Designer.cs b/FModel/Forms/IconGeneratorAssets.Designer.cs index c4e5d7e3..7a06b7fd 100644 --- a/FModel/Forms/IconGeneratorAssets.Designer.cs +++ b/FModel/Forms/IconGeneratorAssets.Designer.cs @@ -55,7 +55,9 @@ "Cosmetics", "Traps", "Variants", - "Ammo"}); + "Ammo", + "STW Heroes", + "STW Defenders"}); this.checkedAssets.Location = new System.Drawing.Point(12, 12); this.checkedAssets.Name = "checkedAssets"; this.checkedAssets.Size = new System.Drawing.Size(307, 274); diff --git a/FModel/Forms/IconGeneratorAssets.cs b/FModel/Forms/IconGeneratorAssets.cs index f366c568..b459790d 100644 --- a/FModel/Forms/IconGeneratorAssets.cs +++ b/FModel/Forms/IconGeneratorAssets.cs @@ -21,6 +21,8 @@ namespace FModel.Forms checkedAssets.SetItemChecked(3, Properties.Settings.Default.createIconForTraps); checkedAssets.SetItemChecked(4, Properties.Settings.Default.createIconForVariants); checkedAssets.SetItemChecked(5, Properties.Settings.Default.createIconForAmmo); + checkedAssets.SetItemChecked(6, Properties.Settings.Default.createIconForSTWHeroes); + checkedAssets.SetItemChecked(7, Properties.Settings.Default.createIconForSTWDefenders); } private void OKButton_Click(object sender, EventArgs e) @@ -32,6 +34,8 @@ namespace FModel.Forms Properties.Settings.Default.createIconForTraps = checkedAssets.GetItemChecked(3); Properties.Settings.Default.createIconForVariants = checkedAssets.GetItemChecked(4); Properties.Settings.Default.createIconForAmmo = checkedAssets.GetItemChecked(5); + Properties.Settings.Default.createIconForSTWHeroes = checkedAssets.GetItemChecked(6); + Properties.Settings.Default.createIconForSTWDefenders = checkedAssets.GetItemChecked(7); Properties.Settings.Default.Save(); //SAVE Close(); diff --git a/FModel/MainWindow.cs b/FModel/MainWindow.cs index 1d431e7c..95693574 100644 --- a/FModel/MainWindow.cs +++ b/FModel/MainWindow.cs @@ -672,7 +672,7 @@ namespace FModel //ASK DIFFERENCE FILE AND COMPARE OpenFileDialog theDialog = new OpenFileDialog(); theDialog.Title = @"Choose your Backup PAK File"; - theDialog.InitialDirectory = DefaultOutputPath; + theDialog.InitialDirectory = DefaultOutputPath + "\\Backup"; theDialog.Multiselect = false; theDialog.Filter = @"TXT Files (*.txt)|*.txt|All Files (*.*)|*.*"; Invoke(new Action(() => @@ -1418,14 +1418,18 @@ namespace FModel { if (Settings.Default.createIconForCosmetics && (itemId[i].ExportType.Contains("Athena") && itemId[i].ExportType.Contains("Item") && itemId[i].ExportType.Contains("Definition"))) CreateItemIcon(itemId[i], true); - else if (Settings.Default.createIconForConsumablesWeapons && (itemId[i].ExportType.Contains("FortWeaponRangedItemDefinition") || itemId[i].ExportType.Contains("FortWeaponMeleeItemDefinition"))) + else if (Settings.Default.createIconForConsumablesWeapons && (itemId[i].ExportType == "FortWeaponRangedItemDefinition" || itemId[i].ExportType == "FortWeaponMeleeItemDefinition")) CreateItemIcon(itemId[i], false, true); - else if (Settings.Default.createIconForTraps && (itemId[i].ExportType.Contains("FortTrapItemDefinition") || itemId[i].ExportType.Contains("FortContextTrapItemDefinition"))) + else if (Settings.Default.createIconForTraps && (itemId[i].ExportType == "FortTrapItemDefinition" || itemId[i].ExportType == "FortContextTrapItemDefinition")) CreateItemIcon(itemId[i]); else if (Settings.Default.createIconForVariants && (itemId[i].ExportType == "FortVariantTokenType")) CreateItemIcon(itemId[i], false, false, true); else if (Settings.Default.createIconForAmmo && (itemId[i].ExportType == "FortAmmoItemDefinition")) CreateItemIcon(itemId[i], false, false, false, "ammo"); + else if (Settings.Default.createIconForSTWHeroes && (itemId[i].ExportType == "FortHeroType" && (questJson.Contains("ItemDefinition") || questJson.Contains("TestDefsSkydive") || questJson.Contains("GameplayPrototypes")))) //Contains x not to trigger HID from BR + CreateItemIcon(itemId[i], false, false, false, "stwHeroes"); + else if (Settings.Default.createIconForSTWDefenders && (itemId[i].ExportType == "FortDefenderItemDefinition")) + CreateItemIcon(itemId[i], false, false, false, "stwDefenders"); else if (itemId[i].ExportType == "FortChallengeBundleItemDefinition") CreateChallengesIcon(itemId[i], parsedJson, questJson); else if (itemId[i].ExportType == "Texture2D") @@ -1664,6 +1668,43 @@ namespace FModel catch (Exception) { } //COSMETIC USER FACING FLAGS + if (SpecialMode == "stwHeroes") + { + try + { + g.DrawString(theItem.AttributeInitKey.AttributeInitCategory, new Font(_pfc.Families[0], 13), new SolidBrush(Color.White), new Point(522 - 5, 500), _rightString); + } + catch (NullReferenceException) + { + AppendText(CurrentUsedItem + " ", Color.Red); + AppendText("No ", Color.Black); + AppendText("AttributeInitCategory ", Color.SteelBlue); + AppendText("found", Color.Black, true); + } //CHARACTER TYPE + } + if (SpecialMode == "stwDefenders") + { + try + { + g.DrawString(theItem.GameplayTags.GameplayTagsGameplayTags[Array.FindIndex(theItem.GameplayTags.GameplayTagsGameplayTags, x => x.StartsWith("NPC.CharacterType.Survivor.Defender."))].Substring(36), new Font(_pfc.Families[0], 13), new SolidBrush(Color.White), new Point(522 - 5, 500), _rightString); + } + catch (NullReferenceException) + { + AppendText(CurrentUsedItem + " ", Color.Red); + AppendText("No ", Color.Black); + AppendText("GameplayTags ", Color.SteelBlue); + AppendText("found", Color.Black, true); + } + catch (IndexOutOfRangeException) + { + AppendText(CurrentUsedItem + " ", Color.Red); + AppendText("No ", Color.Black); + AppendText("GameplayTags ", Color.SteelBlue); + AppendText("as ", Color.Black); + AppendText("NPC.CharacterType.Survivor.Defender ", Color.SteelBlue); + AppendText("found", Color.Black, true); + } //CHARACTER TYPE + } #endregion pictureBox1.Image = bmp; diff --git a/FModel/Parser/Items/ItemIDParser.cs b/FModel/Parser/Items/ItemIDParser.cs index 7a52dae3..70b89ef8 100644 --- a/FModel/Parser/Items/ItemIDParser.cs +++ b/FModel/Parser/Items/ItemIDParser.cs @@ -50,6 +50,9 @@ namespace FModel.Parser.Items [JsonProperty("AmmoData")] public AmmoData AmmoData { get; set; } + + [JsonProperty("AttributeInitKey")] + public AttributeInitKey AttributeInitKey { get; set; } } public class GameplayTags @@ -85,6 +88,15 @@ namespace FModel.Parser.Items public string SubPathString { get; set; } } + public partial class AttributeInitKey + { + [JsonProperty("AttributeInitCategory")] + public string AttributeInitCategory { get; set; } + + [JsonProperty("AttributeInitSubCategory")] + public string AttributeInitSubCategory { get; set; } + } + public partial class ItemsIdParser { public static ItemsIdParser[] FromJson(string json) => JsonConvert.DeserializeObject(json, Converter.Settings); diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs index 5a9aaabb..8ee54138 100644 --- a/FModel/Properties/Settings.Designer.cs +++ b/FModel/Properties/Settings.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. // //------------------------------------------------------------------------------ @@ -12,7 +12,7 @@ namespace FModel.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -442,5 +442,29 @@ namespace FModel.Properties { this["createIconForAmmo"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool createIconForSTWDefenders { + get { + return ((bool)(this["createIconForSTWDefenders"])); + } + set { + this["createIconForSTWDefenders"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool createIconForSTWHeroes { + get { + return ((bool)(this["createIconForSTWHeroes"])); + } + set { + this["createIconForSTWHeroes"] = value; + } + } } } diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings index 50cd8f9c..bce4dfe7 100644 --- a/FModel/Properties/Settings.settings +++ b/FModel/Properties/Settings.settings @@ -107,5 +107,11 @@ True + + True + + + True + \ No newline at end of file