diff --git a/hackem_changelog.txt b/hackem_changelog.txt index 23c156c5c..710fbf86b 100644 --- a/hackem_changelog.txt +++ b/hackem_changelog.txt @@ -16,6 +16,7 @@ Version 1.2.1 (unreleased) +Weapons cannot have the acid or sonic property. Revert the sonic protection a toque grants back to just deafness. Upgraded items rarely carry over properties if the result is a magical item. Two alignment keys can be forged together to create The Key of Access. diff --git a/include/obj.h b/include/obj.h index a9073e38d..d6177a025 100644 --- a/include/obj.h +++ b/include/obj.h @@ -579,7 +579,7 @@ struct obj { #define ITEM_FROST 0x00000002L /* frost damage or resistance */ #define ITEM_SHOCK 0x00000004L /* shock damage or resistance */ #define ITEM_VENOM 0x00000008L /* poison damage or resistance */ -#define ITEM_ACID 0x00000010L /* poison damage or resistance */ +#define ITEM_ACID 0x00000010L /* acid damage or resistance */ #define ITEM_SCREAM 0x00000020L /* sonic damage or resistance */ #define ITEM_DRLI 0x00000040L /* drains life or resists it */ #define ITEM_OILSKIN 0x00000080L /* permanently greased */ diff --git a/src/artifact.c b/src/artifact.c index 98512ada4..da0a48c90 100644 --- a/src/artifact.c +++ b/src/artifact.c @@ -450,7 +450,7 @@ boolean allow_detrimental; /* check for restrictions */ if ((otmp->oclass == WEAPON_CLASS || is_weptool(otmp)) - && (j & (ITEM_DRLI | ITEM_FUMBLING | ITEM_HUNGER))) + && (j & (ITEM_DRLI | ITEM_SCREAM | ITEM_ACID | ITEM_FUMBLING | ITEM_HUNGER ))) continue; if (is_launcher(otmp) diff --git a/src/objnam.c b/src/objnam.c index c3dbb577c..b2274349a 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -5459,8 +5459,7 @@ struct obj *no_wish; otmp->oerodeproof = (Luck >= 0 || wizard); } - if (otmp->oclass == WEAPON_CLASS || is_weptool(otmp) - || otmp->oclass == ARMOR_CLASS) { + if (otmp->oclass == WEAPON_CLASS || is_weptool(otmp) || otmp->oclass == ARMOR_CLASS) { /* check for restrictions */ if (objprops & ITEM_FROST) objprops &= ~(ITEM_FIRE | ITEM_DRLI | ITEM_SHOCK | ITEM_SCREAM | ITEM_VENOM | ITEM_ACID); @@ -5487,14 +5486,14 @@ struct obj *no_wish; | ITEM_WARNING | ITEM_FUMBLING | ITEM_HUNGER | ITEM_EXCEL); if (otmp->oclass == WEAPON_CLASS || is_weptool(otmp)) - objprops &= ~(ITEM_DRLI | ITEM_FUMBLING | ITEM_HUNGER); + objprops &= ~(ITEM_DRLI | ITEM_ACID | ITEM_SCREAM | ITEM_FUMBLING | ITEM_HUNGER); if (is_launcher(otmp)) - objprops &= ~(ITEM_FIRE | ITEM_FROST | ITEM_DRLI | ITEM_SCREAM - | ITEM_SHOCK | ITEM_VENOM | ITEM_ACID | ITEM_OILSKIN); + objprops &= ~(ITEM_FIRE | ITEM_FROST | ITEM_DRLI | ITEM_SHOCK | ITEM_VENOM | ITEM_ACID | ITEM_SCREAM + | ITEM_OILSKIN); if (is_ammo(otmp) || is_missile(otmp)) - objprops &= ~(ITEM_DRLI | ITEM_OILSKIN | ITEM_ESP | ITEM_SEARCHING + objprops &= ~(ITEM_DRLI | ITEM_ACID | ITEM_SCREAM | ITEM_OILSKIN | ITEM_ESP | ITEM_SEARCHING | ITEM_WARNING | ITEM_FUMBLING | ITEM_HUNGER | ITEM_EXCEL); if (otmp->material != CLOTH)