fix #2468 - killer bees without a queen

Seven year old suggestion was to have a killer bee eat royal jelly if
there was no queen around, then after a short delay it would become a
queen.  This does that, with "no queen around" being "no queen bee on
current dungeon level" and the transformation happening immediately
with the "short delay" taking place after.

Pet killer bees will target nearby royal jelly if there's no queen,
hostile killer bees will only eat it if they happen to walk on the
same spot as one.  Both types accept either tame or hostile queen bee
as an existing queen.

Killer bees eating royal jelly will drop dead if queen bees have been
genocided, and aren't smart enough to avoid the instinct to eat such
if/when that happens to be the situation.
This commit is contained in:
PatR
2018-12-21 16:59:01 -08:00
parent bba5d14dca
commit 4159dd985a
6 changed files with 93 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 makemon.c $NHDT-Date: 1544998885 2018/12/16 22:21:25 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.131 $ */
/* NetHack 3.6 makemon.c $NHDT-Date: 1545439153 2018/12/22 00:39:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.132 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1801,9 +1801,11 @@ struct monst *mtmp, *victim;
return (struct permonst *) 0;
/* note: none of the monsters with special hit point calculations
have both little and big forms */
have both little and big forms (killer bee can't grow into queen
bee by just killing things, so isn't in the little_to_big list) */
oldtype = monsndx(ptr);
newtype = little_to_big(oldtype);
newtype = (oldtype == PM_KILLER_BEE && !victim) ? PM_QUEEN_BEE
: little_to_big(oldtype);
if (newtype == PM_PRIEST && mtmp->female)
newtype = PM_PRIESTESS;