B14014: soft hats and piercers

Soft "helmets" don't protect against falling rocks, but did protect against
piercers.  Update the checks so only hard (metallic) helmets provide this
protection.  The same report quibbled about using the word "helmet" for
soft head coverings.  This patch does not address that quibble.
This commit is contained in:
cohrs
2002-11-21 18:05:48 +00:00
parent 7b9f2f6e3e
commit d3e2f53910
3 changed files with 5 additions and 2 deletions
+1
View File
@@ -311,6 +311,7 @@ use get_adjacent_loc() rather than getdir() directly for some things where
minor experience calculation tweaks minor experience calculation tweaks
level telporting out of the dungeon while carrying unpaid shop goods would level telporting out of the dungeon while carrying unpaid shop goods would
trigger "not on any bill" warnings during final inventory disclosure trigger "not on any bill" warnings during final inventory disclosure
only hard helmets protect against falling piercers
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+1 -1
View File
@@ -1493,7 +1493,7 @@ stillinwater:;
Amonnam(mtmp), ceiling(u.ux,u.uy)); Amonnam(mtmp), ceiling(u.ux,u.uy));
if(mtmp->mtame) /* jumps to greet you, not attack */ if(mtmp->mtame) /* jumps to greet you, not attack */
; ;
else if(uarmh) else if(uarmh && is_metallic(uarmh))
pline("Its blow glances off your helmet."); pline("Its blow glances off your helmet.");
else if (u.uac + 3 <= rnd(20)) else if (u.uac + 3 <= rnd(20))
You("are almost hit by %s!", You("are almost hit by %s!",
+3 -1
View File
@@ -356,6 +356,7 @@ mattacku(mtmp)
u.uundetected = 0; u.uundetected = 0;
if (is_hider(youmonst.data)) { if (is_hider(youmonst.data)) {
coord cc; /* maybe we need a unexto() function? */ coord cc; /* maybe we need a unexto() function? */
struct obj *obj;
You("fall from the %s!", ceiling(u.ux,u.uy)); You("fall from the %s!", ceiling(u.ux,u.uy));
if (enexto(&cc, u.ux, u.uy, youmonst.data)) { if (enexto(&cc, u.ux, u.uy, youmonst.data)) {
@@ -377,7 +378,8 @@ mattacku(mtmp)
if (youmonst.data->mlet != S_PIERCER) if (youmonst.data->mlet != S_PIERCER)
return(0); /* trappers don't attack */ return(0); /* trappers don't attack */
if (which_armor(mtmp, WORN_HELMET)) { obj = which_armor(mtmp, WORN_HELMET);
if (obj && is_metallic(obj)) {
Your("blow glances off %s helmet.", Your("blow glances off %s helmet.",
s_suffix(mon_nam(mtmp))); s_suffix(mon_nam(mtmp)));
} else { } else {