From 9b9e922f3596ac60ef3db44e597637a8f2540c65 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Thu, 25 Sep 2025 01:09:09 -0500 Subject: [PATCH] Allow setting appearances --- NethackHelper/Item.cs | 6 ++ NethackHelper/ItemDisplay.Designer.cs | 1 + NethackHelper/ItemDisplay.cs | 90 +++++++++++++++++++++++--- NethackHelper/MainForm.Designer.cs | 12 ++-- NethackHelper/MainForm.resx | 44 ++++++------- NethackHelper/items/amulets-36.yaml | 12 +++- NethackHelper/items/amulets-37.yaml | 14 +++- NethackHelper/items/armor-36.yaml | 41 +++++++++++- NethackHelper/items/armor-37.yaml | 39 +++++++++++ NethackHelper/items/potions-36.yaml | 28 +++++++- NethackHelper/items/potions-37.yaml | 28 +++++++- NethackHelper/items/rings.yaml | 31 ++++++++- NethackHelper/items/scrolls.yaml | 44 ++++++++++++- NethackHelper/items/spellbooks-36.yaml | 43 +++++++++++- NethackHelper/items/spellbooks-37.yaml | 44 ++++++++++++- NethackHelper/items/wands.yaml | 30 ++++++++- 16 files changed, 461 insertions(+), 46 deletions(-) diff --git a/NethackHelper/Item.cs b/NethackHelper/Item.cs index d428b26..42b701a 100644 --- a/NethackHelper/Item.cs +++ b/NethackHelper/Item.cs @@ -12,8 +12,14 @@ public string Slot { get; set; } = string.Empty; } + public class ItemAppearance { + public string Appearance { get; set; } = string.Empty; + public string Slot { get; set; } = string.Empty; + } + public class ItemList { public List Items { get; set; } = new(); + public List Appearances { get; set; } = new(); } public enum ItemAttribute { diff --git a/NethackHelper/ItemDisplay.Designer.cs b/NethackHelper/ItemDisplay.Designer.cs index 2247142..5ebceba 100644 --- a/NethackHelper/ItemDisplay.Designer.cs +++ b/NethackHelper/ItemDisplay.Designer.cs @@ -41,6 +41,7 @@ itemListView.TabIndex = 0; itemListView.UseCompatibleStateImageBehavior = false; itemListView.View = System.Windows.Forms.View.Details; + itemListView.SelectedIndexChanged += itemListView_SelectedIndexChanged; itemListView.MouseDoubleClick += itemListView_MouseDoubleClick; // // nameColumn diff --git a/NethackHelper/ItemDisplay.cs b/NethackHelper/ItemDisplay.cs index 675a80e..372bae3 100644 --- a/NethackHelper/ItemDisplay.cs +++ b/NethackHelper/ItemDisplay.cs @@ -6,7 +6,6 @@ using System.Linq; using System.Windows.Forms; using static System.Windows.Forms.ListViewItem; using System.ComponentModel; -using System.Runtime.CompilerServices; namespace NethackHelper { public partial class ItemDisplay : UserControl { @@ -34,11 +33,13 @@ namespace NethackHelper { [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public ItemAttribute Grouping { get; set; } = ItemAttribute.Cost; - private int[] GroupCosts { get; set; } = []; + private List GroupCosts { get; set; } = []; private Dictionary AppearanceMap { get; set; } = new(); private Dictionary ItemMap { get; set; } = new(); + private Dictionary appearanceContextMenus = new(); + public ItemDisplay() { InitializeComponent(); this.itemListView.ListViewItemSorter = Comparer.Create(this.CompareItems); @@ -63,12 +64,24 @@ namespace NethackHelper { this.itemListView.Items.Clear(); this.AppearanceMap.Clear(); this.ItemMap.Clear(); + this.appearanceContextMenus.Clear(); - if (this.Grouping == ItemAttribute.Cost) { - this.GroupCosts = itemList.Items.Select(item => item.Cost).Distinct().Order().ToArray(); + var appearanceSlots = itemList.Appearances.Select(app => app.Slot).Distinct().ToList(); + foreach (var slot in appearanceSlots) { + ContextMenuStrip contextMenuStrip = new(); + var appearances = itemList.Appearances.Where(app => app.Slot == slot).Select(app => app.Appearance).Order().ToList(); + foreach (var appearance in appearances) { + contextMenuStrip.Items.Add(appearance, null, (sender, e) => this.PickAppearance(appearance)); + } + this.appearanceContextMenus.Add(slot, contextMenuStrip); + } + + var groups = itemList.Items.Select(item => COLUMN_MAP[this.Grouping].Invoke(item)).Distinct().Order().ToList(); + if (this.Grouping == ItemAttribute.Cost) { + this.GroupCosts = itemList.Items.Select(item => item.Cost).Distinct().Order().ToList(); + groups = this.GroupCosts.Select(cost => cost.ToString()).ToList(); } - var groups = itemList.Items.Select(item => COLUMN_MAP[this.Grouping].Invoke(item)).Distinct().Order(); var groupDictionary = new Dictionary(); foreach (var group in groups) { @@ -125,6 +138,12 @@ namespace NethackHelper { listViewItem.SubItems[i].Font = new Font(baseFont, fontStyle); } } + } else { + for (var i = 0; i < this.Columns.Count; i++) { + if (this.Columns[i].Attribute == ItemAttribute.Appearance) { + listViewItem.SubItems[i].Text = record.Appearance; + } + } } this.itemListView.Items.Add(listViewItem); } @@ -148,18 +167,22 @@ namespace NethackHelper { public void UpdateCostHeaders() { if (this.Grouping == ItemAttribute.Cost) { - for (int i = 0; i < this.GroupCosts.Length; i++) { + for (int i = 0; i < this.GroupCosts.Count; i++) { this.itemListView.Groups[i].Header = this.CostFormatter.Invoke(this.GroupCosts[i]); } } } private void itemListView_MouseDoubleClick(object sender, MouseEventArgs e) { + if (!e.Button.HasFlag(MouseButtons.Left)) { + return; + } if (this.itemListView.SelectedItems.Count == 1) { var item = this.itemListView.SelectedItems[0]; item.Checked = !item.Checked; var baseFont = item.Font; - foreach (ListViewSubItem subItem in item.SubItems) { + for (var i = 0; i < this.Columns.Count; i++) { + var subItem = item.SubItems[i]; if (item.Checked) { if (subItem.Font.Italic) { subItem.Font = new Font(baseFont, FontStyle.Italic); @@ -168,7 +191,9 @@ namespace NethackHelper { } subItem.ForeColor = UNSELECTED_COLOR; } else { - if (subItem.Font.Italic) { + if (this.Columns[i].Attribute == ItemAttribute.Appearance && this.ItemMap[item.Text].Appearance == null) { + this.AppearanceMap[item.Text] = null; + subItem.Text = UNIDENTIFIED; subItem.Font = new Font(baseFont, FontStyle.Bold | FontStyle.Italic); } else { subItem.Font = new Font(baseFont, FontStyle.Bold | FontStyle.Regular); @@ -177,6 +202,27 @@ namespace NethackHelper { } } this.itemListView.Sort(); + this.ProcessCurrentItemContextMenu(); + } + } + + private void PickAppearance(string appearance) { + if (itemListView.SelectedItems.Count == 1) { + var item = this.itemListView.SelectedItems[0]; + var name = item.Text; + this.AppearanceMap[name] = appearance; + item.Checked = true; + var baseFont = item.Font; + for (var i = 0; i < this.Columns.Count; i++) { + var subItem = item.SubItems[i]; + subItem.Font = new Font(baseFont, FontStyle.Regular); + subItem.ForeColor = UNSELECTED_COLOR; + if (this.Columns[i].Attribute == ItemAttribute.Appearance) { + subItem.Text = appearance; + } + } + this.itemListView.Sort(); + this.ProcessCurrentItemContextMenu(); } } @@ -189,6 +235,34 @@ namespace NethackHelper { return a.Text.CompareTo(b.Text); } } + + private void ProcessCurrentItemContextMenu() { + if (itemListView.SelectedItems.Count == 1) { + var item = this.itemListView.SelectedItems[0]; + if (this.ItemMap[item.Text].Appearance == null) { + var slot = this.ItemMap[item.Text].Slot; + if (this.appearanceContextMenus.TryGetValue(slot, out var menu)) { + itemListView.ContextMenuStrip = menu; + var inUse = this.AppearanceMap.Values.Distinct().ToHashSet(); + string? appearance = null; + if (this.AppearanceMap.TryGetValue(item.Text, out appearance) && appearance != null) { + inUse.Remove(appearance); + } + foreach (ToolStripMenuItem menuItem in menu.Items) { + menuItem.Enabled = !inUse.Contains(menuItem.Text); + menuItem.Checked = menuItem.Text == appearance; + } + return; + } + } + } + + itemListView.ContextMenuStrip = null; + } + + private void itemListView_SelectedIndexChanged(object sender, EventArgs e) { + this.ProcessCurrentItemContextMenu(); + } } [Serializable] diff --git a/NethackHelper/MainForm.Designer.cs b/NethackHelper/MainForm.Designer.cs index ebf00e0..06b1a85 100644 --- a/NethackHelper/MainForm.Designer.cs +++ b/NethackHelper/MainForm.Designer.cs @@ -170,9 +170,9 @@ namespace NethackHelper { potionDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left; potionDisplay.Columns = (System.Collections.Generic.List) resources.GetObject("potionDisplay.Columns"); potionDisplay.Grouping = ItemAttribute.Cost; - potionDisplay.Location = new Point(325, 6); + potionDisplay.Location = new Point(375, 6); potionDisplay.Name = "potionDisplay"; - potionDisplay.Size = new Size(313, 515); + potionDisplay.Size = new Size(263, 515); potionDisplay.TabIndex = 1; // // scrollDisplay @@ -182,7 +182,7 @@ namespace NethackHelper { scrollDisplay.Grouping = ItemAttribute.Cost; scrollDisplay.Location = new Point(6, 6); scrollDisplay.Name = "scrollDisplay"; - scrollDisplay.Size = new Size(313, 515); + scrollDisplay.Size = new Size(363, 515); scrollDisplay.TabIndex = 0; // // wandRingTab @@ -202,9 +202,9 @@ namespace NethackHelper { ringDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right; ringDisplay.Columns = (System.Collections.Generic.List) resources.GetObject("ringDisplay.Columns"); ringDisplay.Grouping = ItemAttribute.Cost; - ringDisplay.Location = new Point(325, 6); + ringDisplay.Location = new Point(301, 6); ringDisplay.Name = "ringDisplay"; - ringDisplay.Size = new Size(313, 515); + ringDisplay.Size = new Size(337, 515); ringDisplay.TabIndex = 2; // // wandDisplay @@ -214,7 +214,7 @@ namespace NethackHelper { wandDisplay.Grouping = ItemAttribute.Cost; wandDisplay.Location = new Point(6, 6); wandDisplay.Name = "wandDisplay"; - wandDisplay.Size = new Size(313, 515); + wandDisplay.Size = new Size(289, 515); wandDisplay.TabIndex = 1; // // spellbookTab diff --git a/NethackHelper/MainForm.resx b/NethackHelper/MainForm.resx index 2279cf5..0e593d0 100644 --- a/NethackHelper/MainForm.resx +++ b/NethackHelper/MainForm.resx @@ -129,32 +129,16 @@ cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy - c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAACAAAA + c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAAFAAAA DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr aW5nRmllbGQWPFdpZHRoPmtfX0JhY2tpbmdGaWVsZAQAG05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0 ZQQAAAAIBAAAAAX5////G05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0ZQEAAAAHdmFsdWVfXwAIBAAA - AAAAAACQAAAAAQYAAAAFAAAAAfj////5////AwAAAJAAAAAL + AAAAAAB3AAAAAQYAAAAFAAAAAfj////5////AwAAAHcAAAAL - - AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1 - cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l - cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg - Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy - c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAADAAAA - DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA - AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH - AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f - QmFja2luZ0ZpZWxkFjxXaWR0aD5rX19CYWNraW5nRmllbGQEABtOZXRoYWNrSGVscGVyLkl0ZW1BdHRy - aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A - CAQAAAAAAAAAcgAAAAEGAAAABQAAAAH3////+P///wIAAAAoAAAAAQcAAAAFAAAAAfb////4////AwAA - AIYAAAAL - - - AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1 cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l @@ -166,8 +150,24 @@ AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f QmFja2luZ0ZpZWxkFjxXaWR0aD5rX19CYWNraW5nRmllbGQEABtOZXRoYWNrSGVscGVyLkl0ZW1BdHRy aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A - CAQAAAAAAAAAhgAAAAEGAAAABQAAAAH3////+P///wUAAAAUAAAAAQcAAAAFAAAAAfb////4////AwAA - AIYAAAAL + CAQAAAAAAAAAcgAAAAEGAAAABQAAAAH3////+P///wIAAAAoAAAAAQcAAAAFAAAAAfb////4////AwAA + ALgAAAAL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1 + cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg + Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy + c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAATAAAA + DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA + AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH + AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f + QmFja2luZ0ZpZWxkFjxXaWR0aD5rX19CYWNraW5nRmllbGQEABtOZXRoYWNrSGVscGVyLkl0ZW1BdHRy + aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A + CAQAAAAAAAAAwAAAAAEGAAAABQAAAAH3////+P///wUAAAAUAAAAAQcAAAAFAAAAAfb////4////AwAA + AGQAAAAL @@ -176,13 +176,13 @@ cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy - c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAACAAAA + c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAAIAAAA DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr aW5nRmllbGQWPFdpZHRoPmtfX0JhY2tpbmdGaWVsZAQAG05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0 ZQQAAAAIBAAAAAX5////G05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0ZQEAAAAHdmFsdWVfXwAIBAAA - AAAAAACQAAAAAQYAAAAFAAAAAfj////5////AwAAAJAAAAAL + AAAAAACQAAAAAQYAAAAFAAAAAfj////5////AwAAAHgAAAAL diff --git a/NethackHelper/items/amulets-36.yaml b/NethackHelper/items/amulets-36.yaml index cdba13f..f6aad45 100644 --- a/NethackHelper/items/amulets-36.yaml +++ b/NethackHelper/items/amulets-36.yaml @@ -19,4 +19,14 @@ - name: Unchanging cost: 150 - name: Versus Poison - cost: 150 \ No newline at end of file + cost: 150 +appearances: + - appearance: circular + - appearance: triangular + - appearance: concave + - appearance: spherical + - appearance: pyramidal + - appearance: hexagonal + - appearance: oval + - appearance: square + - appearance: octagonal \ No newline at end of file diff --git a/NethackHelper/items/amulets-37.yaml b/NethackHelper/items/amulets-37.yaml index 757db32..c273f98 100644 --- a/NethackHelper/items/amulets-37.yaml +++ b/NethackHelper/items/amulets-37.yaml @@ -23,4 +23,16 @@ - name: Unchanging cost: 150 - name: Versus Poison - cost: 150 \ No newline at end of file + cost: 150 +appearances: + - appearance: circular + - appearance: triangular + - appearance: concave + - appearance: spherical + - appearance: pyramidal + - appearance: hexagonal + - appearance: oval + - appearance: square + - appearance: octagonal + - appearance: pentagonal + - appearance: cubical \ No newline at end of file diff --git a/NethackHelper/items/armor-36.yaml b/NethackHelper/items/armor-36.yaml index 1539e5c..7b543d6 100644 --- a/NethackHelper/items/armor-36.yaml +++ b/NethackHelper/items/armor-36.yaml @@ -68,4 +68,43 @@ slot: boots - name: Water Walking Boots cost: 50 - slot: boots \ No newline at end of file + slot: boots +appearances: + - appearance: plumed helmet + slot: helm + - appearance: etched helmet + slot: helm + - appearance: crested helmet + slot: helm + - appearance: visored helmet + slot: helm + - appearance: piece of cloth + slot: cloak + - appearance: opera cloak + slot: cloak + - appearance: ornamental cope + slot: cloak + - appearance: tattered cape + slot: cloak + - appearance: old gloves + slot: gloves + - appearance: padded gloves + slot: gloves + - appearance: riding gloves + slot: gloves + - appearance: fencing gloves + slot: gloves + - appearance: mud boots + slot: boots + - appearance: buckled boots + slot: boots + - appearance: riding boots + slot: boots + - appearance: snow boots + slot: boots + - appearance: hiking boots + slot: boots + - appearance: combat boots + slot: boots + - appearance: jungle boots + slot: boots diff --git a/NethackHelper/items/armor-37.yaml b/NethackHelper/items/armor-37.yaml index cbca8e7..cf9d7ca 100644 --- a/NethackHelper/items/armor-37.yaml +++ b/NethackHelper/items/armor-37.yaml @@ -72,4 +72,43 @@ slot: boots - name: Water Walking Boots cost: 50 + slot: boots +appearances: + - appearance: plumed helmet + slot: helm + - appearance: etched helmet + slot: helm + - appearance: crested helmet + slot: helm + - appearance: visored helmet + slot: helm + - appearance: piece of cloth + slot: cloak + - appearance: opera cloak + slot: cloak + - appearance: ornamental cope + slot: cloak + - appearance: tattered cape + slot: cloak + - appearance: old gloves + slot: gloves + - appearance: padded gloves + slot: gloves + - appearance: riding gloves + slot: gloves + - appearance: fencing gloves + slot: gloves + - appearance: mud boots + slot: boots + - appearance: buckled boots + slot: boots + - appearance: riding boots + slot: boots + - appearance: snow boots + slot: boots + - appearance: hiking boots + slot: boots + - appearance: combat boots + slot: boots + - appearance: jungle boots slot: boots \ No newline at end of file diff --git a/NethackHelper/items/potions-36.yaml b/NethackHelper/items/potions-36.yaml index c36a35d..ffb43fe 100644 --- a/NethackHelper/items/potions-36.yaml +++ b/NethackHelper/items/potions-36.yaml @@ -54,4 +54,30 @@ - name: Gain Level cost: 300 - name: Paralysis - cost: 300 \ No newline at end of file + cost: 300 +appearances: + - appearance: ruby + - appearance: dark green + - appearance: purple-red + - appearance: smoky + - appearance: brown + - appearance: pink + - appearance: cyan + - appearance: puce + - appearance: cloudy + - appearance: fizzy + - appearance: orange + - appearance: sky blue + - appearance: milky + - appearance: effervescent + - appearance: dark + - appearance: yellow + - appearance: brilliant blue + - appearance: swirly + - appearance: black + - appearance: white + - appearance: emerald + - appearance: magenta + - appearance: bubbly + - appearance: golden + - appearance: murky \ No newline at end of file diff --git a/NethackHelper/items/potions-37.yaml b/NethackHelper/items/potions-37.yaml index 244ae9a..45d8aea 100644 --- a/NethackHelper/items/potions-37.yaml +++ b/NethackHelper/items/potions-37.yaml @@ -54,4 +54,30 @@ - name: Gain Level cost: 300 - name: Paralysis - cost: 300 \ No newline at end of file + cost: 300 +appearances: + - appearance: ruby + - appearance: dark green + - appearance: purple-red + - appearance: smoky + - appearance: brown + - appearance: pink + - appearance: cyan + - appearance: puce + - appearance: cloudy + - appearance: fizzy + - appearance: orange + - appearance: sky blue + - appearance: milky + - appearance: effervescent + - appearance: dark + - appearance: yellow + - appearance: brilliant blue + - appearance: swirly + - appearance: black + - appearance: white + - appearance: emerald + - appearance: magenta + - appearance: bubbly + - appearance: golden + - appearance: murky \ No newline at end of file diff --git a/NethackHelper/items/rings.yaml b/NethackHelper/items/rings.yaml index 50c9489..800ef1c 100644 --- a/NethackHelper/items/rings.yaml +++ b/NethackHelper/items/rings.yaml @@ -58,4 +58,33 @@ - name: Polymorph Control cost: 300 - name: Teleport Control - cost: 300 \ No newline at end of file + cost: 300 +appearances: + - appearance: pearl + - appearance: engagement + - appearance: silver + - appearance: clay + - appearance: jade + - appearance: diamond + - appearance: iron + - appearance: shiny + - appearance: gold + - appearance: coral + - appearance: agate + - appearance: ivory + - appearance: twisted + - appearance: bronze + - appearance: wooden + - appearance: black onyx + - appearance: topaz + - appearance: emerald + - appearance: steel + - appearance: brass + - appearance: granite + - appearance: moonstone + - appearance: sapphire + - appearance: wire + - appearance: copper + - appearance: opal + - appearance: tiger eye + - appearance: ruby \ No newline at end of file diff --git a/NethackHelper/items/scrolls.yaml b/NethackHelper/items/scrolls.yaml index 407bbfa..9c4a800 100644 --- a/NethackHelper/items/scrolls.yaml +++ b/NethackHelper/items/scrolls.yaml @@ -65,4 +65,46 @@ cost: 300 - name: Stinking Cloud ink: 20 - cost: 300 \ No newline at end of file + cost: 300 +appearances: + - appearance: ZELGO MER + - appearance: JUYED AWK YACC + - appearance: NR 9 + - appearance: XIXAXA XOXAXA XUXAXA + - appearance: PRATYAVAYAH + - appearance: DAIYEN FOOELS + - appearance: LEP GEX VEN ZEA + - appearance: PRIRUTSENIE + - appearance: ELBIB YLOH + - appearance: VERR YED HORRE + - appearance: VENZAR BORGAVVE + - appearance: THARR + - appearance: YUM YUM + - appearance: KERNOD WEL + - appearance: ELAM EBOW + - appearance: DUAM XNAHT + - appearance: ANDOVA BEGARIN + - appearance: KIRJE + - appearance: VE FORBRYDERNE + - appearance: HACKEM MUCHE + - appearance: VELOX NEB + - appearance: FOOBIE BLETCH + - appearance: TEMOV + - appearance: GARVEN DEH + - appearance: READ ME + - appearance: ETAOIN SHRDLU + - appearance: LOREM IPSUM + - appearance: FNORD + - appearance: KO BATE + - appearance: ABRA KA DABRA + - appearance: ASHPD SODALG + - appearance: MAPIRO MAHAMA DIROMAT + - appearance: GNIK SISI VLE + - appearance: HAPAX LEGOMENON + - appearance: EIRIS SAZUN IDISI + - appearance: PHOL ENDE WODAN + - appearance: GHOTI + - appearance: ZLORFIK + - appearance: VAS CORP BET MANI + - appearance: STRC PRST SKRZ KRK + - appearance: XOR OTA \ No newline at end of file diff --git a/NethackHelper/items/spellbooks-36.yaml b/NethackHelper/items/spellbooks-36.yaml index daf1c03..0ce82c9 100644 --- a/NethackHelper/items/spellbooks-36.yaml +++ b/NethackHelper/items/spellbooks-36.yaml @@ -121,4 +121,45 @@ cost: 700 - name: Blank Paper appearance: plain - cost: 0 \ No newline at end of file + cost: 0 +appearances: + - appearance: parchment + - appearance: stained + - appearance: red + - appearance: dark green + - appearance: indigo + - appearance: plaid + - appearance: dusty + - appearance: glittering + - appearance: vellum + - appearance: cloth + - appearance: orange + - appearance: turquoise + - appearance: magenta + - appearance: light brown + - appearance: bronze + - appearance: shining + - appearance: ragged + - appearance: leather + - appearance: yellow + - appearance: cyan + - appearance: purple + - appearance: dark brown + - appearance: copper + - appearance: dull + - appearance: dog eared + - appearance: white + - appearance: velvet + - appearance: light blue + - appearance: violet + - appearance: gray + - appearance: silver + - appearance: thin + - appearance: mottled + - appearance: pink + - appearance: light green + - appearance: dark blue + - appearance: tan + - appearance: wrinkled + - appearance: gold + - appearance: thick \ No newline at end of file diff --git a/NethackHelper/items/spellbooks-37.yaml b/NethackHelper/items/spellbooks-37.yaml index 3591718..994389f 100644 --- a/NethackHelper/items/spellbooks-37.yaml +++ b/NethackHelper/items/spellbooks-37.yaml @@ -124,4 +124,46 @@ cost: 700 - name: Blank Paper appearance: plain - cost: 0 \ No newline at end of file + cost: 0 +appearances: + - appearance: parchment + - appearance: stained + - appearance: red + - appearance: dark green + - appearance: indigo + - appearance: plaid + - appearance: dusty + - appearance: glittering + - appearance: vellum + - appearance: cloth + - appearance: orange + - appearance: turquoise + - appearance: magenta + - appearance: light brown + - appearance: bronze + - appearance: shining + - appearance: ragged + - appearance: leather + - appearance: yellow + - appearance: cyan + - appearance: purple + - appearance: dark brown + - appearance: copper + - appearance: dull + - appearance: dog eared + - appearance: white + - appearance: velvet + - appearance: light blue + - appearance: violet + - appearance: gray + - appearance: silver + - appearance: thin + - appearance: mottled + - appearance: pink + - appearance: light green + - appearance: dark blue + - appearance: tan + - appearance: wrinkled + - appearance: gold + - appearance: thick + - appearance: checkered \ No newline at end of file diff --git a/NethackHelper/items/wands.yaml b/NethackHelper/items/wands.yaml index af9e757..74d11af 100644 --- a/NethackHelper/items/wands.yaml +++ b/NethackHelper/items/wands.yaml @@ -46,4 +46,32 @@ - name: Death cost: 500 - name: Wishing - cost: 500 \ No newline at end of file + cost: 500 +appearances: + - appearance: aluminum + - appearance: curved + - appearance: iridium + - appearance: marble + - appearance: short + - appearance: uranium + - appearance: balsa + - appearance: ebony + - appearance: iron + - appearance: oak + - appearance: silver + - appearance: zinc + - appearance: brass + - appearance: forked + - appearance: jeweled + - appearance: pine + - appearance: spiked + - appearance: copper + - appearance: glass + - appearance: long + - appearance: platinum + - appearance: steel + - appearance: crystal + - appearance: hexagonal + - appearance: maple + - appearance: runed + - appearance: tin \ No newline at end of file