B12004 polymorphing into minotaur
Polymorphing into creature with horns such as a minotaur, will cause your helmet to fall off if it is made of a hard material. Only minotaurs pass the has_horns() test in include/mondata.h because the complaint specifically referred to them, but that should perhaps be reviewed at some point by someone who is certain which creatures have horns growing from their head (some demons?)
This commit is contained in:
@@ -253,6 +253,7 @@ stop running or travelling if the vibrating square message is triggered
|
||||
show correct gender in ^X display when polymorphed into non-humanoid form
|
||||
for wizard and explore modes, skip second screen of ^X output when first
|
||||
screen is cancelled by ESC
|
||||
polyself into minotaur causes hard headgear to fall off
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#define nolimbs(ptr) (((ptr)->mflags1 & M1_NOLIMBS) == M1_NOLIMBS)
|
||||
#define notake(ptr) (((ptr)->mflags1 & M1_NOTAKE) != 0L)
|
||||
#define has_head(ptr) (((ptr)->mflags1 & M1_NOHEAD) == 0L)
|
||||
#define has_horns(ptr) ((ptr) == &mons[PM_MINOTAUR])
|
||||
#define is_whirly(ptr) ((ptr)->mlet == S_VORTEX || \
|
||||
(ptr) == &mons[PM_AIR_ELEMENTAL])
|
||||
#define is_silent(ptr) ((ptr)->msound == MS_SILENT)
|
||||
|
||||
@@ -613,6 +613,21 @@ break_armor()
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (has_horns(youmonst.data)) {
|
||||
if ((otmp = uarmh) != 0) {
|
||||
if (is_flimsy(otmp) && !donning(otmp)) {
|
||||
char yourbuf[BUFSZ];
|
||||
/* Future possiblities: This could damage/destroy helmet*/
|
||||
Your("horns pierce through %s %s.", shk_your(yourbuf, otmp),
|
||||
xname(otmp));
|
||||
} else {
|
||||
if (donning(otmp)) cancel_don();
|
||||
Your("helmet falls to the %s!", surface(u.ux, u.uy));
|
||||
(void) Helmet_off();
|
||||
dropx(otmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nohands(youmonst.data) || verysmall(youmonst.data)) {
|
||||
if ((otmp = uarmg) != 0) {
|
||||
if (donning(otmp)) cancel_don();
|
||||
|
||||
Reference in New Issue
Block a user