costly_alteration() tweaking (trunk only)

For cancellation I accidentally used terrain type WATER when I meant
object type POT_WATER, so being charged for cancelling holy or unholy water
wasn't working.  When I first put in COST_UNHOLY the name made some sense
based on its usage, but after later adding COST_UNBLSS it didn't any more;
change it to COST_UNCURS.

     A shopkeeper's complaint that you're uncursing or unblessing his wares
(only applies to water) now sets bknown flag since you know that the object
has become uncursed.  I hadn't realized that confused remove curse only
affects uncursed objects; this greatly simplifies extra code I added there
for costly_alteration().

[No fixes entry needed.]
This commit is contained in:
nethack.rankin
2005-04-15 02:41:53 +00:00
parent 1a2ebd1ce9
commit 4e9c26fc28
5 changed files with 28 additions and 37 deletions

View File

@@ -855,7 +855,7 @@ register struct obj *obj;
(obj->spe && (obj->oclass == ARMOR_CLASS ||
obj->oclass == WEAPON_CLASS || is_weptool(obj))) ||
otyp == POT_ACID || otyp == POT_SICKNESS ||
(otyp == WATER && (obj->blessed || obj->cursed))) {
(otyp == POT_WATER && (obj->blessed || obj->cursed))) {
if (obj->spe != ((obj->oclass == WAND_CLASS) ? -1 : 0) &&
otyp != WAN_CANCELLATION && /* can't cancel cancellation */
otyp != MAGIC_LAMP && /* cancelling doesn't remove djini */
@@ -876,8 +876,8 @@ register struct obj *obj;
}
break;
case POTION_CLASS:
costly_alteration(obj, (otyp == WATER && obj->cursed) ?
COST_UNHOLY : COST_CANCEL);
costly_alteration(obj, (otyp != POT_WATER) ? COST_CANCEL :
obj->cursed ? COST_UNCURS : COST_UNBLSS);
if (otyp == POT_SICKNESS || otyp == POT_SEE_INVISIBLE) {
/* sickness is "biologically contaminated" fruit juice;
cancel it and it just becomes fruit juice...