diff --git a/NethackHelper/Charisma.cs b/NethackHelper/Charisma.cs index 767919c..fca853c 100644 --- a/NethackHelper/Charisma.cs +++ b/NethackHelper/Charisma.cs @@ -4,44 +4,71 @@ public struct CharismaClass { public string DisplayName { get; private set; } = string.Empty; - public double Multiplier { get; private set; } + public PriceModifier Modifier { get; private set; } = new(1, 1); public CharismaClass() { } - public static List Classes = [ + public readonly static List Classes = [ new() { DisplayName = "CHA 5-", - Multiplier = 2.0, + Modifier = new(2, 1), }, new() { DisplayName = "CHA 6 - 7", - Multiplier = 1.5, + Modifier = new(3, 2), }, new() { DisplayName = "CHA 8 - 10", - Multiplier = 1.3333, + Modifier = new(4, 3), }, new() { DisplayName = "CHA 11 - 15", - Multiplier = 1.0, + Modifier = new(1, 1), }, new() { DisplayName = "CHA 16 - 17", - Multiplier = 0.75, + Modifier = new(3, 4), }, new() { DisplayName = "CHA 18", - Multiplier = 0.6667, + Modifier = new(2, 3), }, new() { DisplayName = "CHA 19+", - Multiplier = 0.5, + Modifier = new(1, 2), }, ]; public static readonly CharismaClass DefaultClass = Classes[3]; } + public struct PriceModifier { + public int Multiplier { get; set; } = 1; + public int Divisor { get; set; } = 1; + + public PriceModifier() { } + + public PriceModifier(int multiplier, int divisor) { + Multiplier = multiplier; + Divisor = divisor; + } + + public readonly int Apply(int cost) { + int final = cost * this.Multiplier; + if (this.Divisor > 1) { + final = ((final * 10) / this.Divisor + 5) / 10; + } + if (final <= 0) { + final = 1; + } + return final; + } + + public static PriceModifier operator *(PriceModifier lhs, PriceModifier rhs) { + return new(lhs.Multiplier * rhs.Multiplier, lhs.Divisor * rhs.Divisor); + } + } + public class CharismaSource : BindingSource { public CharismaSource() { this.DataSource = CharismaClass.Classes; diff --git a/NethackHelper/Item.cs b/NethackHelper/Item.cs index a0330f9..db99d94 100644 --- a/NethackHelper/Item.cs +++ b/NethackHelper/Item.cs @@ -19,8 +19,8 @@ } public class ItemList { - public List Items { get; set; } = new(); - public List Appearances { get; set; } = new(); + public List Items { get; set; } = []; + public List Appearances { get; set; } = []; } public enum ItemAttribute { diff --git a/NethackHelper/ItemDisplay.cs b/NethackHelper/ItemDisplay.cs index a705c37..1cb58ab 100644 --- a/NethackHelper/ItemDisplay.cs +++ b/NethackHelper/ItemDisplay.cs @@ -29,17 +29,17 @@ namespace NethackHelper { public Func CostFormatter { get; set; } = cost => cost.ToString(); [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] - public List Columns { get; set; } = new(); + public List Columns { get; set; } = []; [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public ItemAttribute Grouping { get; set; } = ItemAttribute.Cost; private List GroupCosts { get; set; } = []; - private Dictionary AppearanceMap { get; set; } = new(); - private Dictionary ItemMap { get; set; } = new(); + private Dictionary AppearanceMap { get; } = []; + private Dictionary ItemMap { get; } = []; - private Dictionary appearanceContextMenus = new(); + private readonly Dictionary appearanceContextMenus = []; public ItemDisplay() { InitializeComponent(); @@ -114,17 +114,19 @@ namespace NethackHelper { 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, groupDictionary[groupName]); - listViewItem.UseItemStyleForSubItems = false; var baseFont = new Font(this.itemListView.Font, FontStyle.Regular); var baseColor = UNSELECTED_COLOR; if (!identified) { baseFont = new Font(baseFont, FontStyle.Bold); baseColor = SELECTED_COLOR; } - listViewItem.Checked = identified; - listViewItem.Font = baseFont; - listViewItem.ForeColor = baseColor; + + var listViewItem = new ListViewItem(columns, groupDictionary[groupName]) { + UseItemStyleForSubItems = false, + Checked = identified, + Font = baseFont, + ForeColor = baseColor + }; foreach (ListViewSubItem subItem in listViewItem.SubItems) { subItem.Font = baseFont; subItem.ForeColor = baseColor; @@ -257,8 +259,7 @@ namespace NethackHelper { 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) { + if (this.AppearanceMap.TryGetValue(item.Text, out string? appearance) && appearance != null) { inUse.Remove(appearance); } foreach (ToolStripMenuItem menuItem in menu.Items) { diff --git a/NethackHelper/MainForm.Designer.cs b/NethackHelper/MainForm.Designer.cs index 06b1a85..88db6c2 100644 --- a/NethackHelper/MainForm.Designer.cs +++ b/NethackHelper/MainForm.Designer.cs @@ -275,7 +275,7 @@ namespace NethackHelper { // toolDisplay.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left; toolDisplay.Columns = (System.Collections.Generic.List) resources.GetObject("toolDisplay.Columns"); - toolDisplay.Grouping = ItemAttribute.Appearance; + toolDisplay.Grouping = ItemAttribute.Slot; toolDisplay.Location = new Point(6, 6); toolDisplay.Name = "toolDisplay"; toolDisplay.Size = new Size(213, 515); diff --git a/NethackHelper/MainForm.cs b/NethackHelper/MainForm.cs index 3d31c21..48345a3 100644 --- a/NethackHelper/MainForm.cs +++ b/NethackHelper/MainForm.cs @@ -5,10 +5,10 @@ namespace NethackHelper { using System.Windows.Forms; public partial class MainForm : Form { - private readonly List sokobans = new(); + private readonly List sokobans = []; private int sokobanStepIndex = 0; - private Dictionary versionMap = new(); + private readonly Dictionary versionMap = []; private Version defaultVersion; public MainForm() { @@ -28,7 +28,7 @@ namespace NethackHelper { base.OnLoad(e); this.charismaSelector.DataSource = this.charismaSourceBindingSource; this.charismaSelector.DisplayMember = "DisplayName"; - this.charismaSelector.ValueMember = "Multiplier"; + this.charismaSelector.ValueMember = "Modifier"; foreach (var filename in Directory.EnumerateFiles("sokoban", "*.yaml")) { var sokoban = new SokobanSolution(YamlOptions.DeserializeFile(filename)); @@ -63,7 +63,8 @@ namespace NethackHelper { this.Text = "NethackHelper - " + version.Name; intrinsicsBindingSource.DataSource = save.Intrinsics; - saveSourceBindingSource.ResetItem(0); + + charismaSelector.SelectedItem = save.CharismaClass; var scrolls = YamlOptions.DeserializeFile(Path.Join("items", version.Scrolls)); this.scrollDisplay.DisplayItemList(scrolls, save.Scrolls); @@ -91,28 +92,29 @@ namespace NethackHelper { } private string GetCostString(int cost) { - double buyModifier = (double) (charismaSelector.SelectedValue ?? 1.0); - double sellModifier = 0.5; - if (suckerBox.Checked) { - sellModifier = 0.3333; - buyModifier *= 1.3333; + var buyModifier = new PriceModifier(1, 1); + if (charismaSelector.SelectedValue is PriceModifier modifier) { + buyModifier = modifier; } + var sellModifier = suckerBox.Checked ? new PriceModifier(1, 3) : new PriceModifier(1, 2); + var randomUpcharge = new PriceModifier(4, 3); + var randomDownsell = new PriceModifier(3, 4); if (cost == 0) { return string.Format( "{0} - Buy: {1}/{2}", cost, - Math.Round(5 * buyModifier), - Math.Round(5 * buyModifier * 1.3333)); + buyModifier.Apply(5), + (buyModifier * randomUpcharge).Apply(5)); } return string.Format( "{0} - Buy: {1}/{2}, Sell: {3}/{4}", cost, - Math.Round(cost * buyModifier), - Math.Round(cost * buyModifier * 1.3333), - Math.Round(cost * sellModifier), - Math.Round(cost * sellModifier * 0.75)); + buyModifier.Apply(cost), + (buyModifier * randomUpcharge).Apply(cost), + sellModifier.Apply(cost), + (sellModifier * randomDownsell).Apply(cost)); } private void NextStep() { diff --git a/NethackHelper/MainForm.resx b/NethackHelper/MainForm.resx index 0e593d0..e9380f2 100644 --- a/NethackHelper/MainForm.resx +++ b/NethackHelper/MainForm.resx @@ -144,14 +144,14 @@ cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAQBAAAAeVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5l cmljLkxpc3RgMVtbTmV0aGFja0hlbHBlci5JdGVtRGlzcGxheUNvbHVtbiwgTmV0aGFja0hlbHBlciwg Q3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVfc2l6ZQhfdmVy - c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAAHAAAA + c2lvbgQAACFOZXRoYWNrSGVscGVyLkl0ZW1EaXNwbGF5Q29sdW1uW10CAAAACAgJAwAAAAMAAAAPAAAA DAQAAAAzTmV0aGFja0hlbHBlciwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsBwMA AAAAAQAAAAQAAAAEH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4EAAAACQUAAAAJBgAAAAkH AAAACgUFAAAAH05ldGhhY2tIZWxwZXIuSXRlbURpc3BsYXlDb2x1bW4CAAAAGjxBdHRyaWJ1dGU+a19f QmFja2luZ0ZpZWxkFjxXaWR0aD5rX19CYWNraW5nRmllbGQEABtOZXRoYWNrSGVscGVyLkl0ZW1BdHRy aWJ1dGUEAAAACAQAAAAF+P///xtOZXRoYWNrSGVscGVyLkl0ZW1BdHRyaWJ1dGUBAAAAB3ZhbHVlX18A - CAQAAAAAAAAAcgAAAAEGAAAABQAAAAH3////+P///wIAAAAoAAAAAQcAAAAFAAAAAfb////4////AwAA - ALgAAAAL + CAQAAAAAAAAAhQAAAAEGAAAABQAAAAH3////+P///wIAAAAcAAAAAQcAAAAFAAAAAfb////4////AwAA + ALEAAAAL diff --git a/NethackHelper/SaveData.cs b/NethackHelper/SaveData.cs index 896585b..bc79825 100644 --- a/NethackHelper/SaveData.cs +++ b/NethackHelper/SaveData.cs @@ -108,7 +108,7 @@ } public class IdentificationRecord { - private readonly Dictionary identifications = new(); + private readonly Dictionary identifications = []; public IdentificationRecord(List records) { this.identifications = records.ToDictionary(record => record.Name); @@ -133,14 +133,14 @@ public bool Sucker { get; set; } public Intrinsics Intrinsics { get; set; } = new(); - public List Potions { get; set; } = new(); - public List Rings { get; set; } = new(); - public List Scrolls { get; set; } = new(); - public List Wands { get; set; } = new(); - public List Spellbooks { get; set; } = new(); - public List Amulets { get; set; } = new(); - public List Tools { get; set; } = new(); - public List Armor { get; set; } = new(); + public List Potions { get; set; } = []; + public List Rings { get; set; } = []; + public List Scrolls { get; set; } = []; + public List Wands { get; set; } = []; + public List Spellbooks { get; set; } = []; + public List Amulets { get; set; } = []; + public List Tools { get; set; } = []; + public List Armor { get; set; } = []; } public class Intrinsics { diff --git a/NethackHelper/items/amulets-37.yaml b/NethackHelper/items/amulets-37.yaml index c273f98..d8a97d8 100644 --- a/NethackHelper/items/amulets-37.yaml +++ b/NethackHelper/items/amulets-37.yaml @@ -35,4 +35,5 @@ appearances: - appearance: square - appearance: octagonal - appearance: pentagonal - - appearance: cubical \ No newline at end of file + - appearance: cubical + - appearance: perforated diff --git a/NethackHelper/items/armor-crecelle.yaml b/NethackHelper/items/armor-crecelle.yaml new file mode 100644 index 0000000..1495d09 --- /dev/null +++ b/NethackHelper/items/armor-crecelle.yaml @@ -0,0 +1,132 @@ +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 helmet + - 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 +appearances: + - appearance: plumed helmet + slot: helm + - appearance: etched helmet + slot: helm + - appearance: crested helmet + slot: helm + - appearance: visored helmet + slot: helm + - appearance: frog-mouthed helm + slot: helm + - appearance: close helmet + slot: helm + - appearance: full helm + slot: helm + - appearance: horned helmet + slot: helm + notes: protectes against blinding attacks of ravens and venom-spitting attacks of cobras + - appearance: piece of cloth + slot: cloak + - appearance: opera cloak + slot: cloak + - appearance: ornamental cope + slot: cloak + - appearance: tattered cape + slot: cloak + - appearance: diaphanous veil + slot: cloak + - appearance: heavy mantle + slot: cloak + - appearance: voluminous shroud + slot: cloak + - appearance: old gloves + slot: gloves + - appearance: padded gloves + slot: gloves + - appearance: riding gloves + slot: gloves + notes: increases chance of successfully saddling a steed + - appearance: fencing gloves + slot: gloves + - appearance: mud boots + slot: boots + - appearance: buckled boots + slot: boots + - appearance: riding boots + slot: boots + notes: increases chance of successfully saddling a steed + - appearance: snow boots + slot: boots + notes: prevents fumbling effect of ice + - 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-crecelle.yaml b/NethackHelper/items/potions-crecelle.yaml new file mode 100644 index 0000000..396b601 --- /dev/null +++ b/NethackHelper/items/potions-crecelle.yaml @@ -0,0 +1,94 @@ +items: + - name: Water + cost: 0 + appearance: clear + - name: Healing + cost: 20 + - name: Blood + cost: 50 + appearance: blood red + - name: Booze + cost: 50 + - name: Fruit Juice + cost: 50 + - name: See Invisible + cost: 50 + - name: Sickness + cost: 50 + - name: Confusion + cost: 100 + - name: Extra Healing + cost: 100 + - name: Hallucination + cost: 100 + - name: Hazardous Waste + cost: 100 + - name: Restore Ability + cost: 100 + - name: Sleeping + cost: 100 + - name: Teleportitis + cost: 100 + - name: (Un)Holy Water + cost: 100 + appearance: clear + - name: Blindness + cost: 150 + - name: Gain Energy + cost: 150 + - name: Invisibility + cost: 150 + - name: Monster Detection + cost: 150 + - name: Object Detection + cost: 150 + - name: Enlightenment + cost: 200 + - name: Full Healing + cost: 200 + - name: Levitation + cost: 200 + - name: Polymorph + cost: 200 + - name: Speed + cost: 200 + - name: Acid + cost: 250 + - name: Oil + cost: 250 + - name: Gain Ability + cost: 300 + - name: Gain Level + cost: 300 + - name: Paralysis + cost: 300 +appearances: + - appearance: ruby + - appearance: dark green + - appearance: purple-red + - appearance: smoky + notes: can summon djinni + - appearance: brown + - appearance: pink + - appearance: cyan + - appearance: puce + - appearance: cloudy + - appearance: fizzy + - appearance: orange + - appearance: sky blue + - appearance: milky + notes: can summon ghost + - 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 + - appearance: turgid + - appearance: bilious \ No newline at end of file diff --git a/NethackHelper/items/scrolls-crecelle.yaml b/NethackHelper/items/scrolls-crecelle.yaml new file mode 100644 index 0000000..cc6f5a1 --- /dev/null +++ b/NethackHelper/items/scrolls-crecelle.yaml @@ -0,0 +1,119 @@ +items: + - name: Identify + ink: 14 + cost: 20 + - name: Light + ink: 8 + cost: 50 + - name: Harmonize Weapon + ink: 40 + cost: 60 + - name: Blank Paper + ink: 0 + cost: 60 + appearance: unlabeled + - name: Harmonize Armor + ink: 40 + cost: 80 + - name: Remove Curse + ink: 16 + cost: 80 + - name: Confuse Monster + ink: 12 + cost: 100 + - name: Destroy Armor + ink: 10 + cost: 100 + - name: Fire + ink: 8 + cost: 100 + - name: Food Detection + ink: 8 + cost: 100 + - name: Gold Detection + ink: 8 + cost: 100 + - name: Magic Mapping + ink: 8 + cost: 100 + - name: Scare Monster + ink: 20 + cost: 100 + - name: Teleportation + ink: 20 + cost: 100 + - name: Amnesia + ink: 8 + cost: 200 + - name: Create Monster + ink: 10 + cost: 200 + - name: Earth + ink: 8 + cost: 200 + - name: Taming + ink: 20 + cost: 200 + - name: Charging + ink: 16 + cost: 300 + - name: Control Weather + ink: 12 + cost: 300 + - name: Erasure + ink: 30 + cost: 300 + - name: Maze + ink: 20 + cost: 300 + - name: Punishment + ink: 10 + cost: 300 + - name: Stinking Cloud + ink: 20 + cost: 300 +appearances: + - appearance: 4TN ETC MOTD + - appearance: ET ITANIS + - appearance: DR 0451 + - appearance: UDLER BASTRI + - appearance: BOFH PFY + - appearance: FOOELS DAIYEN + - appearance: FUHUHUHUHU + - appearance: IFNDEF + - appearance: DOT ERSUS MOK + - appearance: VIBGYOR + - appearance: ORBITUS TERTIUS + - appearance: EERF MRD + - appearance: OM NOM NOM + - appearance: YADANI CHEAVE + - appearance: TRAESTO + - appearance: OOM KILAR + - appearance: LP0 ON FIRE + - appearance: NORMRF + - appearance: KTHXBYE + - appearance: VENVIDVIC + - appearance: EKDMOS + - appearance: WAREZ WALL DO + - appearance: FIZZ BUZZ + - appearance: OLEL UL ILAL + - appearance: ERMACS + - appearance: HERAKLES + - appearance: DOTNFO + - appearance: VEEBLUNK EN TRUPT + - appearance: DOLOR SIT AMET + - appearance: CQ CQ CQ + - appearance: ELOMCWE + - appearance: ALAKAZAM + - appearance: KOOP NAMTAR + - appearance: MLIT WVC TEKU SFC + - appearance: NARPAS SWORD + - appearance: BATTLE999 + - appearance: SAZUN HERA DUODER + - appearance: BEN ZI BENA + - appearance: KRYPT3R + - appearance: TILTOWAIT + - appearance: VAS KAL CORP + - appearance: H POKE + - appearance: SQUEMISH OSIFRAGE + - appearance: FLVR TXT \ No newline at end of file diff --git a/NethackHelper/items/tools-crecelle.yaml b/NethackHelper/items/tools-crecelle.yaml new file mode 100644 index 0000000..5ecbf66 --- /dev/null +++ b/NethackHelper/items/tools-crecelle.yaml @@ -0,0 +1,132 @@ +items: + - name: Bag of Holding + slot: bag + cost: 100 + - name: Bag of Tricks + slot: bag + cost: 100 + - name: Oilskin Sack + slot: bag + cost: 100 + - name: Sack + slot: bag + cost: 2 + - name: Acoustic Guitar + cost: 50 + appearance: guitar + slot: guitar + uniqueAppearance: false + - name: Electric Guitar + cost: 50 + appearance: guitar + slot: guitar + uniqueAppearance: false + - name: Fire Horn + cost: 50 + appearance: horn + slot: horn + uniqueAppearance: false + - name: Frost Horn + cost: 50 + appearance: horn + slot: horn + uniqueAppearance: false + - name: Horn of Plenty + cost: 50 + appearance: horn + slot: horn + uniqueAppearance: false + - name: Tooled Horn + cost: 15 + appearance: horn + slot: horn + uniqueAppearance: false + - name: Magic Flute + cost: 36 + appearance: flute + slot: flute + uniqueAppearance: false + - name: Wooden Flute + cost: 12 + appearance: flute + slot: flute + uniqueAppearance: false + - name: Magic Harp + cost: 50 + appearance: harp + slot: harp + uniqueAppearance: false + - name: Wooden Harp + cost: 50 + appearance: harp + slot: harp + uniqueAppearance: false + - name: Drum of Earthquake + cost: 25 + appearance: drum + slot: drum + uniqueAppearance: false + - name: Leather Drum + cost: 25 + appearance: drum + slot: drum + uniqueAppearance: false + - name: Magic Whistle + cost: 10 + appearance: whistle + slot: whistle + uniqueAppearance: false + - name: Tin Whistle + cost: 10 + appearance: whistle + slot: whistle + uniqueAppearance: false + - name: Magic Lamp + cost: 50 + appearance: lamp + slot: lamp + uniqueAppearance: false + - name: Oil Lamp + cost: 10 + appearance: lamp + slot: lamp + uniqueAppearance: false + - name: Wax Candle + cost: 20 + appearance: candle + slot: candle + uniqueAppearance: false + - name: Tallow Candle + cost: 10 + appearance: candle + slot: candle + uniqueAppearance: false + - name: Loadstone + cost: 1 + appearance: gray stone + slot: gray stone + uniqueAppearance: false + - name: Flint Stone + cost: 1 + appearance: gray stone + slot: gray stone + uniqueAppearance: false + - name: Touchstone + cost: 45 + appearance: gray stone + slot: gray stone + uniqueAppearance: false + - name: Luckstone + cost: 60 + appearance: gray stone + slot: gray stone + uniqueAppearance: false +appearances: + - appearance: burlap bag + slot: bag + - appearance: canvas bag + slot: bag + - appearance: drawstring bag + slot: bag + - appearance: embroidered bag + slot: bag \ No newline at end of file diff --git a/NethackHelper/items/tools-stones.yaml b/NethackHelper/items/tools-stones.yaml index c4f9288..9af1e7c 100644 --- a/NethackHelper/items/tools-stones.yaml +++ b/NethackHelper/items/tools-stones.yaml @@ -2,96 +2,120 @@ - name: Bag of Holding cost: 100 appearance: bag + slot: bag uniqueAppearance: false - name: Bag of Tricks cost: 100 appearance: bag + slot: bag uniqueAppearance: false - name: Oilskin Sack cost: 100 appearance: bag + slot: bag uniqueAppearance: false - name: Sack cost: 2 appearance: bag + slot: bag uniqueAppearance: false - name: Fire Horn cost: 50 appearance: horn + slot: horn uniqueAppearance: false - name: Frost Horn cost: 50 appearance: horn + slot: horn uniqueAppearance: false - name: Horn of Plenty cost: 50 appearance: horn + slot: horn uniqueAppearance: false - name: Tooled Horn cost: 15 appearance: horn + slot: horn uniqueAppearance: false - name: Magic Flute cost: 36 appearance: flute + slot: flute uniqueAppearance: false - name: Wooden Flute cost: 12 appearance: flute + slot: flute uniqueAppearance: false - name: Magic Harp cost: 50 appearance: harp + slot: harp uniqueAppearance: false - name: Wooden Harp cost: 50 appearance: harp + slot: harp uniqueAppearance: false - name: Drum of Earthquake cost: 25 appearance: drum + slot: drum uniqueAppearance: false - name: Leather Drum cost: 25 appearance: drum + slot: drum uniqueAppearance: false - name: Magic Whistle cost: 10 appearance: whistle + slot: whistle uniqueAppearance: false - name: Tin Whistle cost: 10 appearance: whistle + slot: whistle uniqueAppearance: false - name: Magic Lamp cost: 50 appearance: lamp + slot: lamp uniqueAppearance: false - name: Oil Lamp cost: 10 appearance: lamp + slot: lamp uniqueAppearance: false - name: Wax Candle cost: 20 appearance: candle + slot: candle uniqueAppearance: false - name: Tallow Candle cost: 10 appearance: candle + slot: candle uniqueAppearance: false - name: Loadstone cost: 1 appearance: gray stone + slot: gray stone uniqueAppearance: false - name: Flint Stone cost: 1 appearance: gray stone + slot: gray stone uniqueAppearance: false - name: Touchstone cost: 45 appearance: gray stone + slot: gray stone uniqueAppearance: false - name: Luckstone cost: 60 appearance: gray stone + slot: gray stone uniqueAppearance: false \ No newline at end of file diff --git a/NethackHelper/items/versions.yaml b/NethackHelper/items/versions.yaml index 650f95b..74faf60 100644 --- a/NethackHelper/items/versions.yaml +++ b/NethackHelper/items/versions.yaml @@ -15,4 +15,13 @@ spellbooks: spellbooks-37.yaml amulets: amulets-37.yaml tools: tools-stones.yaml - armor: armor-37.yaml \ No newline at end of file + armor: armor-37.yaml +- name: CrecelleHack + scrolls: scrolls-crecelle.yaml + rings: rings.yaml + potions: potions-crecelle.yaml + wands: wands-crecelle.yaml + spellbooks: spellbooks-37.yaml + amulets: amulets-37.yaml + tools: tools-crecelle.yaml + armor: armor-crecelle.yaml \ No newline at end of file diff --git a/NethackHelper/items/wands-crecelle.yaml b/NethackHelper/items/wands-crecelle.yaml new file mode 100644 index 0000000..12a6cc1 --- /dev/null +++ b/NethackHelper/items/wands-crecelle.yaml @@ -0,0 +1,88 @@ +items: + - name: Light + cost: 100 + - name: Nothing + cost: 100 + - name: Digging + cost: 150 + - name: Enlightenment + cost: 150 + - name: Locking + cost: 150 + - name: Magic Missile + cost: 150 + - name: Make Invisible + cost: 150 + - name: Opening + cost: 150 + - name: Probing + cost: 150 + - name: Secret Door Detection + cost: 150 + - name: Slow Monster + cost: 150 + - name: Speed Monster + cost: 150 + - name: Striking + cost: 150 + - name: Undead Turning + cost: 150 + - name: Water + cost: 150 + - name: Cold + cost: 175 + - name: Fire + cost: 175 + - name: Lightning + cost: 175 + - name: Sleep + cost: 175 + - name: Cancellation + cost: 200 + - name: Create Monster + cost: 200 + - name: Fecundity + cost: 200 + - name: Polymorph + cost: 200 + - name: Teleportation + cost: 200 + - name: Death + cost: 500 + - name: Wishing + cost: 500 +appearances: + - appearance: aluminum + - appearance: bone + - appearance: curved + - appearance: iridium + - appearance: marble + notes: stone to flesh will make into a meat stick + - appearance: short + - appearance: uranium + - appearance: balsa + notes: requires only 5 strength to break + - appearance: ebony + - appearance: iron + - appearance: oak + - appearance: silver + - appearance: zinc + - appearance: brass + - appearance: forked + - appearance: jeweled + - appearance: pine + - appearance: spiked + - appearance: copper + - appearance: glass + notes: fragile + - appearance: long + - appearance: platinum + - appearance: steel + - appearance: crystal + notes: fragile + - appearance: hexagonal + - appearance: maple + - appearance: runed + - appearance: tin + - appearance: swishy + - appearance: solid ice \ No newline at end of file