still more brides of Dracula

Another tweak to PR #1240.  Vampires start out vampshifted to
bat/fog/wolf form.  Marking them as 'waiting' forces them back to
vampire form.  Testing that revealed one of the brides as a vampire
lord rather than a vampire lady.  That could probably be construed
as being politically correct but doesn't match the source material.

The reversion from vampshifted to vampire entailed a 10% chance of
toggling gender, comparable to hero self-polymorph.  Don't do that
for vampires.  From the player's perspective they change randomly but
from their own perspective, the change is controlled.
This commit is contained in:
PatR
2024-06-01 02:08:06 -07:00
parent 30f5f0055d
commit d8aa4c0b1f
2 changed files with 10 additions and 6 deletions

View File

@@ -35,10 +35,11 @@ des.monster("V",niches[3])
-- no consensus for their names. According to the Wikipedia entry for
-- "Brides of Dracula", the "Czechoslovakian TV film Hrabe Drakula (1971)"
-- gave them titles rather than (or perhaps in addition to) specific names
-- and we use those titles here.
des.monster({ id="Vampire Lady", niches[4], name="Madame" })
des.monster({ id="Vampire Lady", niches[5], name="Marquise" })
des.monster({ id="Vampire Lady", niches[6], name="Countess" })
-- and we use those titles here. Marking them as 'waiting' forces them to
-- start in vampire form instead of vampshifted into bat/fog/wolf form.
des.monster({ id="Vampire Lady", niches[4], name="Madame", waiting=1 })
des.monster({ id="Vampire Lady", niches[5], name="Marquise", waiting=1 })
des.monster({ id="Vampire Lady", niches[6], name="Countess", waiting=1 })
-- The doors
des.door("closed",08,03)
des.door("closed",10,03)

View File

@@ -5027,8 +5027,11 @@ mgender_from_permonst(
} else if (is_female(mdat)) {
mtmp->female = TRUE;
} else if (!is_neuter(mdat)) {
/* usually leave as-is; same chance to change as polymorphing hero */
if (!rn2(10))
/* usually leave as-is; same chance to change as polymorphing hero;
vampires use controlled shapechange (from their perspective, even
if it is random from the player's perspective) and don't undergo
gender change */
if (!rn2(10) && !(is_vampire(mdat) || is_vampshifter(mtmp)))
mtmp->female = !mtmp->female;
}
}