Add armor and tools
This commit is contained in:
@@ -8,6 +8,8 @@
|
|||||||
public string School { get; set; } = string.Empty;
|
public string School { get; set; } = string.Empty;
|
||||||
public string? Appearance { get; set; }
|
public string? Appearance { get; set; }
|
||||||
public bool UsuallyCursed { get; set; } = false;
|
public bool UsuallyCursed { get; set; } = false;
|
||||||
|
public bool UniqueAppearance { get; set; } = true;
|
||||||
|
public string Slot { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ItemList {
|
public class ItemList {
|
||||||
@@ -21,5 +23,6 @@
|
|||||||
School = 4,
|
School = 4,
|
||||||
Appearance = 3,
|
Appearance = 3,
|
||||||
UsuallyCursed = 5,
|
UsuallyCursed = 5,
|
||||||
|
Slot = 6,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using static System.Windows.Forms.ListViewItem;
|
using static System.Windows.Forms.ListViewItem;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
namespace NethackHelper {
|
namespace NethackHelper {
|
||||||
public partial class ItemDisplay : UserControl {
|
public partial class ItemDisplay : UserControl {
|
||||||
@@ -20,6 +21,7 @@ namespace NethackHelper {
|
|||||||
[ItemAttribute.School] = item => item.School.ToString(),
|
[ItemAttribute.School] = item => item.School.ToString(),
|
||||||
[ItemAttribute.Appearance] = item => item.Appearance ?? UNIDENTIFIED,
|
[ItemAttribute.Appearance] = item => item.Appearance ?? UNIDENTIFIED,
|
||||||
[ItemAttribute.UsuallyCursed] = item => item.UsuallyCursed ? "C" : string.Empty,
|
[ItemAttribute.UsuallyCursed] = item => item.UsuallyCursed ? "C" : string.Empty,
|
||||||
|
[ItemAttribute.Slot] = item => item.Slot.ToString(),
|
||||||
};
|
};
|
||||||
|
|
||||||
[Browsable(false)]
|
[Browsable(false)]
|
||||||
@@ -29,13 +31,17 @@ namespace NethackHelper {
|
|||||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
||||||
public List<ItemDisplayColumn> Columns { get; set; } = new();
|
public List<ItemDisplayColumn> Columns { get; set; } = new();
|
||||||
|
|
||||||
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
||||||
|
public ItemAttribute Grouping { get; set; } = ItemAttribute.Cost;
|
||||||
|
|
||||||
private int[] GroupCosts { get; set; } = [];
|
private int[] GroupCosts { get; set; } = [];
|
||||||
|
|
||||||
private Dictionary<string, string?> AppearanceMap { get; set; } = new();
|
private Dictionary<string, string?> AppearanceMap { get; set; } = new();
|
||||||
|
private Dictionary<string, Item> ItemMap { get; set; } = new();
|
||||||
|
|
||||||
public ItemDisplay() {
|
public ItemDisplay() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.itemListView.ListViewItemSorter = Comparer<ListViewItem>.Create(CompareItems);
|
this.itemListView.ListViewItemSorter = Comparer<ListViewItem>.Create(this.CompareItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e) {
|
protected override void OnLoad(EventArgs e) {
|
||||||
@@ -56,14 +62,19 @@ namespace NethackHelper {
|
|||||||
this.itemListView.Groups.Clear();
|
this.itemListView.Groups.Clear();
|
||||||
this.itemListView.Items.Clear();
|
this.itemListView.Items.Clear();
|
||||||
this.AppearanceMap.Clear();
|
this.AppearanceMap.Clear();
|
||||||
|
this.ItemMap.Clear();
|
||||||
|
|
||||||
this.GroupCosts = itemList.Items.Select(item => item.Cost).Distinct().Order().ToArray();
|
if (this.Grouping == ItemAttribute.Cost) {
|
||||||
var costDictionary = new Dictionary<int, ListViewGroup>();
|
this.GroupCosts = itemList.Items.Select(item => item.Cost).Distinct().Order().ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var cost in this.GroupCosts) {
|
var groups = itemList.Items.Select(item => COLUMN_MAP[this.Grouping].Invoke(item)).Distinct().Order();
|
||||||
var group = new ListViewGroup(this.CostFormatter.Invoke(cost), HorizontalAlignment.Center);
|
var groupDictionary = new Dictionary<string, ListViewGroup>();
|
||||||
this.itemListView.Groups.Add(group);
|
|
||||||
costDictionary.Add(cost, group);
|
foreach (var group in groups) {
|
||||||
|
var listViewGroup = new ListViewGroup(group, HorizontalAlignment.Center);
|
||||||
|
this.itemListView.Groups.Add(listViewGroup);
|
||||||
|
groupDictionary.Add(group, listViewGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var item in itemList.Items) {
|
foreach (var item in itemList.Items) {
|
||||||
@@ -79,14 +90,16 @@ namespace NethackHelper {
|
|||||||
Name = item.Name,
|
Name = item.Name,
|
||||||
Appearance = item.Appearance,
|
Appearance = item.Appearance,
|
||||||
};
|
};
|
||||||
identified = true;
|
identified = item.UniqueAppearance;
|
||||||
}
|
}
|
||||||
|
|
||||||
AppearanceMap[item.Name] = record.Appearance;
|
this.ItemMap[item.Name] = item;
|
||||||
|
this.AppearanceMap[item.Name] = record.Appearance;
|
||||||
|
|
||||||
var columns = this.Columns.Select(col => COLUMN_MAP[col.Attribute].Invoke(item)).ToArray();
|
var columns = this.Columns.Select(col => COLUMN_MAP[col.Attribute].Invoke(item)).ToArray();
|
||||||
|
var groupName = COLUMN_MAP[this.Grouping].Invoke(item);
|
||||||
|
|
||||||
var listViewItem = new ListViewItem(columns, costDictionary[item.Cost]);
|
var listViewItem = new ListViewItem(columns, groupDictionary[groupName]);
|
||||||
listViewItem.UseItemStyleForSubItems = false;
|
listViewItem.UseItemStyleForSubItems = false;
|
||||||
var baseFont = new Font(this.itemListView.Font, FontStyle.Regular);
|
var baseFont = new Font(this.itemListView.Font, FontStyle.Regular);
|
||||||
var baseColor = UNSELECTED_COLOR;
|
var baseColor = UNSELECTED_COLOR;
|
||||||
@@ -115,6 +128,8 @@ namespace NethackHelper {
|
|||||||
}
|
}
|
||||||
this.itemListView.Items.Add(listViewItem);
|
this.itemListView.Items.Add(listViewItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.UpdateCostHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentificationRecord Export() {
|
public IdentificationRecord Export() {
|
||||||
@@ -132,8 +147,10 @@ namespace NethackHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateCostHeaders() {
|
public void UpdateCostHeaders() {
|
||||||
for (int i = 0; i < this.GroupCosts.Length; i++) {
|
if (this.Grouping == ItemAttribute.Cost) {
|
||||||
this.itemListView.Groups[i].Header = this.CostFormatter.Invoke(this.GroupCosts[i]);
|
for (int i = 0; i < this.GroupCosts.Length; i++) {
|
||||||
|
this.itemListView.Groups[i].Header = this.CostFormatter.Invoke(this.GroupCosts[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,9 +180,11 @@ namespace NethackHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int CompareItems(ListViewItem a, ListViewItem b) {
|
private int CompareItems(ListViewItem a, ListViewItem b) {
|
||||||
if (a.Checked != b.Checked) {
|
if (a.Checked != b.Checked) {
|
||||||
return a.Checked.CompareTo(b.Checked);
|
return a.Checked.CompareTo(b.Checked);
|
||||||
|
} else if (this.ItemMap[a.Text].Cost != this.ItemMap[b.Text].Cost) {
|
||||||
|
return this.ItemMap[a.Text].Cost.CompareTo(this.ItemMap[b.Text].Cost);
|
||||||
} else {
|
} else {
|
||||||
return a.Text.CompareTo(b.Text);
|
return a.Text.CompareTo(b.Text);
|
||||||
}
|
}
|
||||||
@@ -174,10 +193,10 @@ namespace NethackHelper {
|
|||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class ItemDisplayColumn {
|
public class ItemDisplayColumn {
|
||||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
||||||
public ItemAttribute Attribute { get; set; }
|
public ItemAttribute Attribute { get; set; }
|
||||||
|
|
||||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
||||||
public int Width { get; set; }
|
public int Width { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
51
NethackHelper/MainForm.Designer.cs
generated
51
NethackHelper/MainForm.Designer.cs
generated
@@ -42,6 +42,9 @@ namespace NethackHelper {
|
|||||||
spellbookTab = new TabPage();
|
spellbookTab = new TabPage();
|
||||||
amuletDisplay = new ItemDisplay();
|
amuletDisplay = new ItemDisplay();
|
||||||
spellbookDisplay = new ItemDisplay();
|
spellbookDisplay = new ItemDisplay();
|
||||||
|
toolsTab = new TabPage();
|
||||||
|
armorDisplay = new ItemDisplay();
|
||||||
|
toolDisplay = new ItemDisplay();
|
||||||
charismaSelector = new ComboBox();
|
charismaSelector = new ComboBox();
|
||||||
intrinsicsTab = new TabPage();
|
intrinsicsTab = new TabPage();
|
||||||
label2 = new Label();
|
label2 = new Label();
|
||||||
@@ -75,6 +78,7 @@ namespace NethackHelper {
|
|||||||
mainMenu = new MenuStrip();
|
mainMenu = new MenuStrip();
|
||||||
fileToolStripMenuItem = new ToolStripMenuItem();
|
fileToolStripMenuItem = new ToolStripMenuItem();
|
||||||
resetToolStripMenuItem = new ToolStripMenuItem();
|
resetToolStripMenuItem = new ToolStripMenuItem();
|
||||||
|
toolTip1 = new ToolTip(components);
|
||||||
mainTabControl.SuspendLayout();
|
mainTabControl.SuspendLayout();
|
||||||
itemsTab.SuspendLayout();
|
itemsTab.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize) saveSourceBindingSource).BeginInit();
|
((System.ComponentModel.ISupportInitialize) saveSourceBindingSource).BeginInit();
|
||||||
@@ -82,6 +86,7 @@ namespace NethackHelper {
|
|||||||
scrollPotionTab.SuspendLayout();
|
scrollPotionTab.SuspendLayout();
|
||||||
wandRingTab.SuspendLayout();
|
wandRingTab.SuspendLayout();
|
||||||
spellbookTab.SuspendLayout();
|
spellbookTab.SuspendLayout();
|
||||||
|
toolsTab.SuspendLayout();
|
||||||
intrinsicsTab.SuspendLayout();
|
intrinsicsTab.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize) lastPrayerPicker).BeginInit();
|
((System.ComponentModel.ISupportInitialize) lastPrayerPicker).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize) intrinsicsBindingSource).BeginInit();
|
((System.ComponentModel.ISupportInitialize) intrinsicsBindingSource).BeginInit();
|
||||||
@@ -119,12 +124,14 @@ namespace NethackHelper {
|
|||||||
// suckerBox
|
// suckerBox
|
||||||
//
|
//
|
||||||
suckerBox.AutoSize = true;
|
suckerBox.AutoSize = true;
|
||||||
|
suckerBox.Cursor = Cursors.Help;
|
||||||
suckerBox.DataBindings.Add(new Binding("Checked", saveSourceBindingSource, "Sucker", true));
|
suckerBox.DataBindings.Add(new Binding("Checked", saveSourceBindingSource, "Sucker", true));
|
||||||
suckerBox.Location = new Point(133, 8);
|
suckerBox.Location = new Point(133, 8);
|
||||||
suckerBox.Name = "suckerBox";
|
suckerBox.Name = "suckerBox";
|
||||||
suckerBox.Size = new Size(61, 19);
|
suckerBox.Size = new Size(61, 19);
|
||||||
suckerBox.TabIndex = 2;
|
suckerBox.TabIndex = 2;
|
||||||
suckerBox.Text = "Sucker";
|
suckerBox.Text = "Sucker";
|
||||||
|
toolTip1.SetToolTip(suckerBox, "Check this box if you are a tourist under level 15, are wearing a dunce cap, or are wearing a visible shirt.");
|
||||||
suckerBox.UseVisualStyleBackColor = true;
|
suckerBox.UseVisualStyleBackColor = true;
|
||||||
suckerBox.CheckedChanged += suckerBox_CheckedChanged;
|
suckerBox.CheckedChanged += suckerBox_CheckedChanged;
|
||||||
//
|
//
|
||||||
@@ -139,6 +146,7 @@ namespace NethackHelper {
|
|||||||
itemTabControl.Controls.Add(scrollPotionTab);
|
itemTabControl.Controls.Add(scrollPotionTab);
|
||||||
itemTabControl.Controls.Add(wandRingTab);
|
itemTabControl.Controls.Add(wandRingTab);
|
||||||
itemTabControl.Controls.Add(spellbookTab);
|
itemTabControl.Controls.Add(spellbookTab);
|
||||||
|
itemTabControl.Controls.Add(toolsTab);
|
||||||
itemTabControl.Location = new Point(6, 35);
|
itemTabControl.Location = new Point(6, 35);
|
||||||
itemTabControl.Name = "itemTabControl";
|
itemTabControl.Name = "itemTabControl";
|
||||||
itemTabControl.SelectedIndex = 0;
|
itemTabControl.SelectedIndex = 0;
|
||||||
@@ -161,6 +169,7 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
potionDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
potionDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
potionDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("potionDisplay.Columns");
|
potionDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("potionDisplay.Columns");
|
||||||
|
potionDisplay.Grouping = ItemAttribute.Cost;
|
||||||
potionDisplay.Location = new Point(325, 6);
|
potionDisplay.Location = new Point(325, 6);
|
||||||
potionDisplay.Name = "potionDisplay";
|
potionDisplay.Name = "potionDisplay";
|
||||||
potionDisplay.Size = new Size(313, 515);
|
potionDisplay.Size = new Size(313, 515);
|
||||||
@@ -170,6 +179,7 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
scrollDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
scrollDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
scrollDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("scrollDisplay.Columns");
|
scrollDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("scrollDisplay.Columns");
|
||||||
|
scrollDisplay.Grouping = ItemAttribute.Cost;
|
||||||
scrollDisplay.Location = new Point(6, 6);
|
scrollDisplay.Location = new Point(6, 6);
|
||||||
scrollDisplay.Name = "scrollDisplay";
|
scrollDisplay.Name = "scrollDisplay";
|
||||||
scrollDisplay.Size = new Size(313, 515);
|
scrollDisplay.Size = new Size(313, 515);
|
||||||
@@ -191,6 +201,7 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
ringDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
ringDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
ringDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("ringDisplay.Columns");
|
ringDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("ringDisplay.Columns");
|
||||||
|
ringDisplay.Grouping = ItemAttribute.Cost;
|
||||||
ringDisplay.Location = new Point(325, 6);
|
ringDisplay.Location = new Point(325, 6);
|
||||||
ringDisplay.Name = "ringDisplay";
|
ringDisplay.Name = "ringDisplay";
|
||||||
ringDisplay.Size = new Size(313, 515);
|
ringDisplay.Size = new Size(313, 515);
|
||||||
@@ -200,6 +211,7 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
wandDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
wandDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
wandDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("wandDisplay.Columns");
|
wandDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("wandDisplay.Columns");
|
||||||
|
wandDisplay.Grouping = ItemAttribute.Cost;
|
||||||
wandDisplay.Location = new Point(6, 6);
|
wandDisplay.Location = new Point(6, 6);
|
||||||
wandDisplay.Name = "wandDisplay";
|
wandDisplay.Name = "wandDisplay";
|
||||||
wandDisplay.Size = new Size(313, 515);
|
wandDisplay.Size = new Size(313, 515);
|
||||||
@@ -221,6 +233,7 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
amuletDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
amuletDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
amuletDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("amuletDisplay.Columns");
|
amuletDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("amuletDisplay.Columns");
|
||||||
|
amuletDisplay.Grouping = ItemAttribute.Cost;
|
||||||
amuletDisplay.Location = new Point(325, 6);
|
amuletDisplay.Location = new Point(325, 6);
|
||||||
amuletDisplay.Name = "amuletDisplay";
|
amuletDisplay.Name = "amuletDisplay";
|
||||||
amuletDisplay.Size = new Size(313, 515);
|
amuletDisplay.Size = new Size(313, 515);
|
||||||
@@ -230,11 +243,44 @@ namespace NethackHelper {
|
|||||||
//
|
//
|
||||||
spellbookDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
spellbookDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
spellbookDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("spellbookDisplay.Columns");
|
spellbookDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("spellbookDisplay.Columns");
|
||||||
|
spellbookDisplay.Grouping = ItemAttribute.Cost;
|
||||||
spellbookDisplay.Location = new Point(6, 6);
|
spellbookDisplay.Location = new Point(6, 6);
|
||||||
spellbookDisplay.Name = "spellbookDisplay";
|
spellbookDisplay.Name = "spellbookDisplay";
|
||||||
spellbookDisplay.Size = new Size(313, 515);
|
spellbookDisplay.Size = new Size(313, 515);
|
||||||
spellbookDisplay.TabIndex = 0;
|
spellbookDisplay.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// toolsTab
|
||||||
|
//
|
||||||
|
toolsTab.Controls.Add(armorDisplay);
|
||||||
|
toolsTab.Controls.Add(toolDisplay);
|
||||||
|
toolsTab.Location = new Point(4, 24);
|
||||||
|
toolsTab.Name = "toolsTab";
|
||||||
|
toolsTab.Padding = new Padding(3);
|
||||||
|
toolsTab.Size = new Size(644, 527);
|
||||||
|
toolsTab.TabIndex = 4;
|
||||||
|
toolsTab.Text = "Tools / Armor";
|
||||||
|
toolsTab.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// armorDisplay
|
||||||
|
//
|
||||||
|
armorDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
|
armorDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("armorDisplay.Columns");
|
||||||
|
armorDisplay.Grouping = ItemAttribute.Slot;
|
||||||
|
armorDisplay.Location = new Point(225, 6);
|
||||||
|
armorDisplay.Name = "armorDisplay";
|
||||||
|
armorDisplay.Size = new Size(413, 515);
|
||||||
|
armorDisplay.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// toolDisplay
|
||||||
|
//
|
||||||
|
toolDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
|
toolDisplay.Columns = (System.Collections.Generic.List<ItemDisplayColumn>) resources.GetObject("toolDisplay.Columns");
|
||||||
|
toolDisplay.Grouping = ItemAttribute.Appearance;
|
||||||
|
toolDisplay.Location = new Point(6, 6);
|
||||||
|
toolDisplay.Name = "toolDisplay";
|
||||||
|
toolDisplay.Size = new Size(213, 515);
|
||||||
|
toolDisplay.TabIndex = 0;
|
||||||
|
//
|
||||||
// charismaSelector
|
// charismaSelector
|
||||||
//
|
//
|
||||||
charismaSelector.DataBindings.Add(new Binding("SelectedItem", saveSourceBindingSource, "CharismaClass", true));
|
charismaSelector.DataBindings.Add(new Binding("SelectedItem", saveSourceBindingSource, "CharismaClass", true));
|
||||||
@@ -617,6 +663,7 @@ namespace NethackHelper {
|
|||||||
scrollPotionTab.ResumeLayout(false);
|
scrollPotionTab.ResumeLayout(false);
|
||||||
wandRingTab.ResumeLayout(false);
|
wandRingTab.ResumeLayout(false);
|
||||||
spellbookTab.ResumeLayout(false);
|
spellbookTab.ResumeLayout(false);
|
||||||
|
toolsTab.ResumeLayout(false);
|
||||||
intrinsicsTab.ResumeLayout(false);
|
intrinsicsTab.ResumeLayout(false);
|
||||||
intrinsicsTab.PerformLayout();
|
intrinsicsTab.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize) lastPrayerPicker).EndInit();
|
((System.ComponentModel.ISupportInitialize) lastPrayerPicker).EndInit();
|
||||||
@@ -680,5 +727,9 @@ namespace NethackHelper {
|
|||||||
private TabPage spellbookTab;
|
private TabPage spellbookTab;
|
||||||
private ItemDisplay spellbookDisplay;
|
private ItemDisplay spellbookDisplay;
|
||||||
private ItemDisplay amuletDisplay;
|
private ItemDisplay amuletDisplay;
|
||||||
|
private ToolTip toolTip1;
|
||||||
|
private TabPage toolsTab;
|
||||||
|
private ItemDisplay toolDisplay;
|
||||||
|
private ItemDisplay armorDisplay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,6 +20,8 @@ namespace NethackHelper {
|
|||||||
this.ringDisplay.CostFormatter = GetCostString;
|
this.ringDisplay.CostFormatter = GetCostString;
|
||||||
this.spellbookDisplay.CostFormatter = GetCostString;
|
this.spellbookDisplay.CostFormatter = GetCostString;
|
||||||
this.amuletDisplay.CostFormatter = GetCostString;
|
this.amuletDisplay.CostFormatter = GetCostString;
|
||||||
|
this.toolDisplay.CostFormatter = GetCostString;
|
||||||
|
this.armorDisplay.CostFormatter = GetCostString;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e) {
|
protected override void OnLoad(EventArgs e) {
|
||||||
@@ -80,6 +82,12 @@ namespace NethackHelper {
|
|||||||
|
|
||||||
var amulets = YamlOptions.DeserializeFile<ItemList>(Path.Join("items", version.Amulets));
|
var amulets = YamlOptions.DeserializeFile<ItemList>(Path.Join("items", version.Amulets));
|
||||||
this.amuletDisplay.DisplayItemList(amulets, save.Amulets);
|
this.amuletDisplay.DisplayItemList(amulets, save.Amulets);
|
||||||
|
|
||||||
|
var tools = YamlOptions.DeserializeFile<ItemList>(Path.Join("items", version.Tools));
|
||||||
|
this.toolDisplay.DisplayItemList(tools, save.Tools);
|
||||||
|
|
||||||
|
var armor = YamlOptions.DeserializeFile<ItemList>(Path.Join("items", version.Armor));
|
||||||
|
this.armorDisplay.DisplayItemList(armor, save.Armor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetCostString(int cost) {
|
private string GetCostString(int cost) {
|
||||||
@@ -164,6 +172,8 @@ namespace NethackHelper {
|
|||||||
this.ringDisplay.UpdateCostHeaders();
|
this.ringDisplay.UpdateCostHeaders();
|
||||||
this.spellbookDisplay.UpdateCostHeaders();
|
this.spellbookDisplay.UpdateCostHeaders();
|
||||||
this.amuletDisplay.UpdateCostHeaders();
|
this.amuletDisplay.UpdateCostHeaders();
|
||||||
|
this.toolDisplay.UpdateCostHeaders();
|
||||||
|
this.armorDisplay.UpdateCostHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void charismaSelector_SelectedIndexChanged(object sender, EventArgs e) {
|
private void charismaSelector_SelectedIndexChanged(object sender, EventArgs e) {
|
||||||
@@ -192,6 +202,8 @@ namespace NethackHelper {
|
|||||||
save.Wands = this.wandDisplay.Export();
|
save.Wands = this.wandDisplay.Export();
|
||||||
save.Spellbooks = this.spellbookDisplay.Export();
|
save.Spellbooks = this.spellbookDisplay.Export();
|
||||||
save.Amulets = this.amuletDisplay.Export();
|
save.Amulets = this.amuletDisplay.Export();
|
||||||
|
save.Tools = this.toolDisplay.Export();
|
||||||
|
save.Armor = this.armorDisplay.Export();
|
||||||
|
|
||||||
save.Save();
|
save.Save();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,13 +120,16 @@
|
|||||||
<metadata name="saveSourceBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="saveSourceBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>410, 17</value>
|
<value>410, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>712, 17</value>
|
||||||
|
</metadata>
|
||||||
<data name="potionDisplay.Columns" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="potionDisplay.Columns" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1
|
AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1
|
||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAAIAAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAACAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C
|
||||||
BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr
|
BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr
|
||||||
@@ -141,7 +144,7 @@
|
|||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAAmAAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAADAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
||||||
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
||||||
@@ -157,7 +160,7 @@
|
|||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAAUAAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAAHAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
||||||
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
||||||
@@ -173,7 +176,7 @@
|
|||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAAIAAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAACAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C
|
||||||
BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr
|
BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr
|
||||||
@@ -188,7 +191,7 @@
|
|||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAA0AAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAADAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
||||||
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
||||||
@@ -204,7 +207,7 @@
|
|||||||
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAA4AAAA
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAADAAAA
|
||||||
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
||||||
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f
|
||||||
@@ -212,6 +215,37 @@
|
|||||||
aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A
|
aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A
|
||||||
CAQAAAAAAAAAbgAAAAEGAAAABQAAAAH3////+P///wQAAABZAAAAAQcAAAAFAAAAAfb////4////AwAA
|
CAQAAAAAAAAAbgAAAAEGAAAABQAAAAH3////+P///wQAAABZAAAAAQcAAAAFAAAAAfb////4////AwAA
|
||||||
AFoAAAAL
|
AFoAAAAL
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="armorDisplay.Columns" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1
|
||||||
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAQAAAAqAAAA
|
||||||
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH
|
||||||
|
AAAACQgAAAAFBQAAAB9OZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uAgAAABo8QXR0cmlidXRl
|
||||||
|
PmtfX0JhY2tpbmdGaWVsZBY8V2lkdGg+a19fQmFja2luZ0ZpZWxkBAAbTmV0aGFja0hlbHBlci5JdGVt
|
||||||
|
QXR0cmlidXRlBAAAAAgEAAAABff///8bTmV0aGFja0hlbHBlci5JdGVtQXR0cmlidXRlAQAAAAd2YWx1
|
||||||
|
ZV9fAAgEAAAAAAAAALgAAAABBgAAAAUAAAAB9v////f///8FAAAAFAAAAAEHAAAABQAAAAH1////9///
|
||||||
|
/wEAAAAoAAAAAQgAAAAFAAAAAfT////3////AwAAAJAAAAAL
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolDisplay.Columns" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAEROZXRoYWNrSGVscGVyLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1
|
||||||
|
cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l
|
||||||
|
cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg
|
||||||
|
Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy
|
||||||
|
c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAIAAAAOAAAA
|
||||||
|
DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA
|
||||||
|
AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAA0C
|
||||||
|
BQUAAAAfTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbgIAAAAaPEF0dHJpYnV0ZT5rX19CYWNr
|
||||||
|
aW5nRmllbGQWPFdpZHRoPmtfX0JhY2tpbmdGaWVsZAQAG05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0
|
||||||
|
ZQQAAAAIBAAAAAX5////G05ldGhhY2tIZWxwZXIuSXRlbUF0dHJpYnV0ZQEAAAAHdmFsdWVfXwAIBAAA
|
||||||
|
AAAAAACPAAAAAQYAAAAFAAAAAfj////5////AQAAAC0AAAAL
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="intrinsicsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="intrinsicsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|||||||
@@ -43,6 +43,12 @@
|
|||||||
if (save.Amulets != null && save.Amulets.Count > 0) {
|
if (save.Amulets != null && save.Amulets.Count > 0) {
|
||||||
this.Amulets = new(save.Amulets);
|
this.Amulets = new(save.Amulets);
|
||||||
}
|
}
|
||||||
|
if (save.Tools != null && save.Tools.Count > 0) {
|
||||||
|
this.Tools = new(save.Tools);
|
||||||
|
}
|
||||||
|
if (save.Armor != null && save.Armor.Count > 0) {
|
||||||
|
this.Armor = new(save.Armor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +66,8 @@
|
|||||||
Wands = this.Wands?.Export() ?? [],
|
Wands = this.Wands?.Export() ?? [],
|
||||||
Spellbooks = this.Spellbooks?.Export() ?? [],
|
Spellbooks = this.Spellbooks?.Export() ?? [],
|
||||||
Amulets = this.Amulets?.Export() ?? [],
|
Amulets = this.Amulets?.Export() ?? [],
|
||||||
|
Tools = this.Tools?.Export() ?? [],
|
||||||
|
Armor = this.Armor?.Export() ?? [],
|
||||||
};
|
};
|
||||||
|
|
||||||
YamlOptions.SerializeToFile(fileName, save);
|
YamlOptions.SerializeToFile(fileName, save);
|
||||||
@@ -75,6 +83,8 @@
|
|||||||
this.Wands = null;
|
this.Wands = null;
|
||||||
this.Spellbooks = null;
|
this.Spellbooks = null;
|
||||||
this.Amulets = null;
|
this.Amulets = null;
|
||||||
|
this.Tools = null;
|
||||||
|
this.Armor = null;
|
||||||
this.Intrinsics = new();
|
this.Intrinsics = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,6 +98,8 @@
|
|||||||
public IdentificationRecord? Wands { get; set; }
|
public IdentificationRecord? Wands { get; set; }
|
||||||
public IdentificationRecord? Spellbooks { get; set; }
|
public IdentificationRecord? Spellbooks { get; set; }
|
||||||
public IdentificationRecord? Amulets { get; set; }
|
public IdentificationRecord? Amulets { get; set; }
|
||||||
|
public IdentificationRecord? Tools { get; set; }
|
||||||
|
public IdentificationRecord? Armor { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct ItemRecord {
|
public struct ItemRecord {
|
||||||
@@ -127,6 +139,8 @@
|
|||||||
public List<ItemRecord> Wands { get; set; } = new();
|
public List<ItemRecord> Wands { get; set; } = new();
|
||||||
public List<ItemRecord> Spellbooks { get; set; } = new();
|
public List<ItemRecord> Spellbooks { get; set; } = new();
|
||||||
public List<ItemRecord> Amulets { get; set; } = new();
|
public List<ItemRecord> Amulets { get; set; } = new();
|
||||||
|
public List<ItemRecord> Tools { get; set; } = new();
|
||||||
|
public List<ItemRecord> Armor { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Intrinsics {
|
public class Intrinsics {
|
||||||
|
|||||||
@@ -7,5 +7,7 @@
|
|||||||
public string Rings { get; set; }
|
public string Rings { get; set; }
|
||||||
public string Spellbooks { get; set; }
|
public string Spellbooks { get; set; }
|
||||||
public string Amulets { get; set; }
|
public string Amulets { get; set; }
|
||||||
|
public string Tools { get; set; }
|
||||||
|
public string Armor { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
71
NethackHelper/items/armor-36.yaml
Normal file
71
NethackHelper/items/armor-36.yaml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
items:
|
||||||
|
- name: Cloak of Displacement
|
||||||
|
cost: 50
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Invisibility
|
||||||
|
cost: 60
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Magic Resistance
|
||||||
|
cost: 60
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Protection
|
||||||
|
cost: 50
|
||||||
|
slot: cloak
|
||||||
|
- name: Dunce Cap
|
||||||
|
cost: 1
|
||||||
|
appearance: conical hat
|
||||||
|
slot: helm
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Cornuthaum
|
||||||
|
cost: 80
|
||||||
|
appearance: conical hat
|
||||||
|
slot: helm
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Helmet
|
||||||
|
cost: 10
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Brilliance
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Opposite Alignment
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Telepathy
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Leather Gloves
|
||||||
|
cost: 8
|
||||||
|
slot: gloves
|
||||||
|
- name: Gauntlets of Dexterity
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
- name: Gauntlets of Fumbling
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Gauntlets of Power
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
- name: Elven Boots
|
||||||
|
cost: 8
|
||||||
|
slot: boots
|
||||||
|
- name: Kicking Boots
|
||||||
|
cost: 8
|
||||||
|
slot: boots
|
||||||
|
- name: Fumble Boots
|
||||||
|
cost: 30
|
||||||
|
slot: boots
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Levitation Boots
|
||||||
|
cost: 30
|
||||||
|
slot: boots
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Jumping Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
|
- name: Speed Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
|
- name: Water Walking Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
75
NethackHelper/items/armor-37.yaml
Normal file
75
NethackHelper/items/armor-37.yaml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
items:
|
||||||
|
- name: Cloak of Displacement
|
||||||
|
cost: 50
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Invisibility
|
||||||
|
cost: 60
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Magic Resistance
|
||||||
|
cost: 60
|
||||||
|
slot: cloak
|
||||||
|
- name: Cloak of Protection
|
||||||
|
cost: 50
|
||||||
|
slot: cloak
|
||||||
|
- name: Dunce Cap
|
||||||
|
cost: 1
|
||||||
|
appearance: conical hat
|
||||||
|
slot: helm
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Cornuthaum
|
||||||
|
cost: 80
|
||||||
|
appearance: conical hat
|
||||||
|
slot: helm
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Helmet
|
||||||
|
cost: 10
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Brilliance
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
appearance: crystal helm
|
||||||
|
- name: Helm of Caution
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Opposite Alignment
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Helm of Telepathy
|
||||||
|
cost: 50
|
||||||
|
slot: helm
|
||||||
|
- name: Leather Gloves
|
||||||
|
cost: 8
|
||||||
|
slot: gloves
|
||||||
|
- name: Gauntlets of Dexterity
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
- name: Gauntlets of Fumbling
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Gauntlets of Power
|
||||||
|
cost: 50
|
||||||
|
slot: gloves
|
||||||
|
- name: Elven Boots
|
||||||
|
cost: 8
|
||||||
|
slot: boots
|
||||||
|
- name: Kicking Boots
|
||||||
|
cost: 8
|
||||||
|
slot: boots
|
||||||
|
- name: Fumble Boots
|
||||||
|
cost: 30
|
||||||
|
slot: boots
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Levitation Boots
|
||||||
|
cost: 30
|
||||||
|
slot: boots
|
||||||
|
usuallyCursed: true
|
||||||
|
- name: Jumping Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
|
- name: Speed Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
|
- name: Water Walking Boots
|
||||||
|
cost: 50
|
||||||
|
slot: boots
|
||||||
97
NethackHelper/items/tools-stones.yaml
Normal file
97
NethackHelper/items/tools-stones.yaml
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
items:
|
||||||
|
- name: Bag of Holding
|
||||||
|
cost: 100
|
||||||
|
appearance: bag
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Bag of Tricks
|
||||||
|
cost: 100
|
||||||
|
appearance: bag
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Oilskin Sack
|
||||||
|
cost: 100
|
||||||
|
appearance: bag
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Sack
|
||||||
|
cost: 2
|
||||||
|
appearance: bag
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Fire Horn
|
||||||
|
cost: 50
|
||||||
|
appearance: horn
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Frost Horn
|
||||||
|
cost: 50
|
||||||
|
appearance: horn
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Horn of Plenty
|
||||||
|
cost: 50
|
||||||
|
appearance: horn
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Tooled Horn
|
||||||
|
cost: 15
|
||||||
|
appearance: horn
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Magic Flute
|
||||||
|
cost: 36
|
||||||
|
appearance: flute
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Wooden Flute
|
||||||
|
cost: 12
|
||||||
|
appearance: flute
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Magic Harp
|
||||||
|
cost: 50
|
||||||
|
appearance: harp
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Wooden Harp
|
||||||
|
cost: 50
|
||||||
|
appearance: harp
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Drum of Earthquake
|
||||||
|
cost: 25
|
||||||
|
appearance: drum
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Leather Drum
|
||||||
|
cost: 25
|
||||||
|
appearance: drum
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Magic Whistle
|
||||||
|
cost: 10
|
||||||
|
appearance: whistle
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Tin Whistle
|
||||||
|
cost: 10
|
||||||
|
appearance: whistle
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Magic Lamp
|
||||||
|
cost: 50
|
||||||
|
appearance: lamp
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Oil Lamp
|
||||||
|
cost: 10
|
||||||
|
appearance: lamp
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Wax Candle
|
||||||
|
cost: 20
|
||||||
|
appearance: candle
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Tallow Candle
|
||||||
|
cost: 10
|
||||||
|
appearance: candle
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Loadstone
|
||||||
|
cost: 1
|
||||||
|
appearance: gray stone
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Flint Stone
|
||||||
|
cost: 1
|
||||||
|
appearance: gray stone
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Touchstone
|
||||||
|
cost: 45
|
||||||
|
appearance: gray stone
|
||||||
|
uniqueAppearance: false
|
||||||
|
- name: Luckstone
|
||||||
|
cost: 60
|
||||||
|
appearance: gray stone
|
||||||
|
uniqueAppearance: false
|
||||||
@@ -5,6 +5,8 @@
|
|||||||
wands: wands.yaml
|
wands: wands.yaml
|
||||||
spellbooks: spellbooks-36.yaml
|
spellbooks: spellbooks-36.yaml
|
||||||
amulets: amulets-36.yaml
|
amulets: amulets-36.yaml
|
||||||
|
tools: tools-stones.yaml
|
||||||
|
armor: armor-36.yaml
|
||||||
- name: Vanilla 3.7
|
- name: Vanilla 3.7
|
||||||
scrolls: scrolls.yaml
|
scrolls: scrolls.yaml
|
||||||
rings: rings.yaml
|
rings: rings.yaml
|
||||||
@@ -12,3 +14,5 @@
|
|||||||
wands: wands.yaml
|
wands: wands.yaml
|
||||||
spellbooks: spellbooks-37.yaml
|
spellbooks: spellbooks-37.yaml
|
||||||
amulets: amulets-37.yaml
|
amulets: amulets-37.yaml
|
||||||
|
tools: tools-stones.yaml
|
||||||
|
armor: armor-37.yaml
|
||||||
Reference in New Issue
Block a user