From 62fb87593189311927746f0bfe21e317c1838c69 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Sat, 2 Dec 2023 06:34:20 +0000 Subject: [PATCH] Make the potion of healing much more common and easier to identify At present, potions of healing generate primarily in Gehennom, which causes significant balance issues (e.g. you don't have them to heal in the early game, or even if you do, you can't identify them in time to use them). In this series of commits, I'm aiming to make potions of healing a more viable early-game healing source, which means making them both (much) more likely to generate, and easier to identify so that they are actually usable in the early game. This commit radically increases the generation chance of potions of healing (reducing the chance of most other potions slightly to compensate), and gives them a unique base price. This should make them fairly easy to identify either by price-ID or quantity-ID (and the unique base price is chosen to be fairly easy to figure out even for unspoiled players). --- doc/fixes3-7-0.txt | 2 +- include/objects.h | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index bf8932620..981a54159 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1299,7 +1299,7 @@ Wizards no longer have a bonus to writing unknown spellbooks, but now starting inventory: magic markers are more likely (guaranteed for Wizards), but have fewer charges early dungeon (pre-Sokoban) generates extra useful survivability items - +potion of healing is much more common, and has a unique price Fixes to 3.7.0-x General Problems Exposed Via git Repository diff --git a/include/objects.h b/include/objects.h index a0954c22c..2bf90dd5a 100644 --- a/include/objects.h +++ b/include/objects.h @@ -1098,29 +1098,29 @@ FOOD("tin", 75, 0, 10, 1, METAL, 0, HI_METAL, TIN), OBJECT(OBJ(name, desc), \ BITS(0, 1, 0, 0, mgc, 0, 0, 0, 0, 0, 0, P_NONE, GLASS), \ power, POTION_CLASS, prob, 0, 20, cost, 0, 0, 0, 0, 10, color, sn) -POTION("gain ability", "ruby", 1, 0, 42, 300, CLR_RED, +POTION("gain ability", "ruby", 1, 0, 40, 300, CLR_RED, POT_GAIN_ABILITY), POTION("restore ability", "pink", 1, 0, 40, 100, CLR_BRIGHT_MAGENTA, POT_RESTORE_ABILITY), -POTION("confusion", "orange", 1, CONFUSION, 42, 100, CLR_ORANGE, +POTION("confusion", "orange", 1, CONFUSION, 40, 100, CLR_ORANGE, POT_CONFUSION), -POTION("blindness", "yellow", 1, BLINDED, 40, 150, CLR_YELLOW, +POTION("blindness", "yellow", 1, BLINDED, 30, 150, CLR_YELLOW, POT_BLINDNESS), -POTION("paralysis", "emerald", 1, 0, 42, 300, CLR_BRIGHT_GREEN, +POTION("paralysis", "emerald", 1, 0, 40, 300, CLR_BRIGHT_GREEN, POT_PARALYSIS), -POTION("speed", "dark green", 1, FAST, 42, 200, CLR_GREEN, +POTION("speed", "dark green", 1, FAST, 40, 200, CLR_GREEN, POT_SPEED), -POTION("levitation", "cyan", 1, LEVITATION, 42, 200, CLR_CYAN, +POTION("levitation", "cyan", 1, LEVITATION, 40, 200, CLR_CYAN, POT_LEVITATION), -POTION("hallucination", "sky blue", 1, HALLUC, 40, 100, CLR_CYAN, +POTION("hallucination", "sky blue", 1, HALLUC, 30, 100, CLR_CYAN, POT_HALLUCINATION), POTION("invisibility", "brilliant blue", 1, INVIS, 40, 150, CLR_BRIGHT_BLUE, POT_INVISIBILITY), -POTION("see invisible", "magenta", 1, SEE_INVIS, 42, 50, CLR_MAGENTA, +POTION("see invisible", "magenta", 1, SEE_INVIS, 40, 50, CLR_MAGENTA, POT_SEE_INVISIBLE), -POTION("healing", "purple-red", 1, 0, 57, 100, CLR_MAGENTA, +POTION("healing", "purple-red", 1, 0, 115, 20, CLR_MAGENTA, POT_HEALING), -POTION("extra healing", "puce", 1, 0, 47, 100, CLR_RED, +POTION("extra healing", "puce", 1, 0, 45, 100, CLR_RED, POT_EXTRA_HEALING), POTION("gain level", "milky", 1, 0, 20, 300, CLR_WHITE, POT_GAIN_LEVEL), @@ -1128,21 +1128,21 @@ POTION("enlightenment", "swirly", 1, 0, 20, 200, CLR_BROWN, POT_ENLIGHTENMENT), POTION("monster detection", "bubbly", 1, 0, 40, 150, CLR_WHITE, POT_MONSTER_DETECTION), -POTION("object detection", "smoky", 1, 0, 42, 150, CLR_GRAY, +POTION("object detection", "smoky", 1, 0, 40, 150, CLR_GRAY, POT_OBJECT_DETECTION), -POTION("gain energy", "cloudy", 1, 0, 42, 150, CLR_WHITE, +POTION("gain energy", "cloudy", 1, 0, 40, 150, CLR_WHITE, POT_GAIN_ENERGY), -POTION("sleeping", "effervescent", 1, 0, 42, 100, CLR_GRAY, +POTION("sleeping", "effervescent", 1, 0, 40, 100, CLR_GRAY, POT_SLEEPING), POTION("full healing", "black", 1, 0, 10, 200, CLR_BLACK, POT_FULL_HEALING), POTION("polymorph", "golden", 1, 0, 10, 200, CLR_YELLOW, POT_POLYMORPH), -POTION("booze", "brown", 0, 0, 42, 50, CLR_BROWN, +POTION("booze", "brown", 0, 0, 40, 50, CLR_BROWN, POT_BOOZE), -POTION("sickness", "fizzy", 0, 0, 42, 50, CLR_CYAN, +POTION("sickness", "fizzy", 0, 0, 40, 50, CLR_CYAN, POT_SICKNESS), -POTION("fruit juice", "dark", 0, 0, 42, 50, CLR_BLACK, +POTION("fruit juice", "dark", 0, 0, 40, 50, CLR_BLACK, POT_FRUIT_JUICE), POTION("acid", "white", 0, 0, 10, 250, CLR_WHITE, POT_ACID), @@ -1150,7 +1150,7 @@ POTION("oil", "murky", 0, 0, 30, 250, CLR_BROWN, POT_OIL), /* fixed description */ -POTION("water", "clear", 0, 0, 92, 100, CLR_CYAN, +POTION("water", "clear", 0, 0, 80, 100, CLR_CYAN, POT_WATER), #undef POTION