diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 260d8f1d2..10b88379d 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -311,6 +311,7 @@ use get_adjacent_loc() rather than getdir() directly for some things where minor experience calculation tweaks level telporting out of the dungeon while carrying unpaid shop goods would trigger "not on any bill" warnings during final inventory disclosure +only hard helmets protect against falling piercers Platform- and/or Interface-Specific Fixes diff --git a/src/hack.c b/src/hack.c index 6731ebe4a..56a9e7d57 100644 --- a/src/hack.c +++ b/src/hack.c @@ -1493,7 +1493,7 @@ stillinwater:; Amonnam(mtmp), ceiling(u.ux,u.uy)); 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."); else if (u.uac + 3 <= rnd(20)) You("are almost hit by %s!", diff --git a/src/mhitu.c b/src/mhitu.c index 88f8200c2..d5ba16d6b 100644 --- a/src/mhitu.c +++ b/src/mhitu.c @@ -356,6 +356,7 @@ mattacku(mtmp) u.uundetected = 0; if (is_hider(youmonst.data)) { coord cc; /* maybe we need a unexto() function? */ + struct obj *obj; You("fall from the %s!", ceiling(u.ux,u.uy)); if (enexto(&cc, u.ux, u.uy, youmonst.data)) { @@ -377,7 +378,8 @@ mattacku(mtmp) if (youmonst.data->mlet != S_PIERCER) 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.", s_suffix(mon_nam(mtmp))); } else {