coaligned unicorn in bones

<Someone> wrote:
>> If the previous character was non-neutral, the unicorn would have
>> started off as hostile.  When a bones file is loaded, I don't think
>> hostiles are made non-hostile, although the reverse is certainly true
>> (pets of the deceased are usually hostile).
>
>  In the general case, they are, or rather their hostility is
>  re-evaluated with respect to the new character; see the peace_minded()
>  call in getlev(). However, co-aligned unicorns always being created
>  peaceful is a special case in makemon(), _not_ part of peace_minded(),
>  so they'd just have the usual chance of being made peaceful or not
>  depending on alignment strength, as for any other co-aligned monster
>  not explicitly declared always peaceful or always hostile.
This commit is contained in:
nethack.allison
2004-12-17 00:56:35 +00:00
parent 422a6f8145
commit 0843550e37
2 changed files with 8 additions and 2 deletions

View File

@@ -74,6 +74,7 @@ give blindness feedback when moving into/through stinking cloud
fix case on monster name when monster reflects floating eye's gaze
monsters "shrieking in pain" from a potion didn't wake anything up
Master of Thieves as Tourist Nemesis still had STRAT_CLOSE
co-aligned unicorns in bones could be hostile
Platform- and/or Interface-Specific Fixes

View File

@@ -823,9 +823,14 @@ boolean ghostly;
mtmp2 = mtmp->nmon;
if (ghostly) {
/* reset peaceful/malign relative to new character */
if(!mtmp->isshk)
/* shopkeepers will reset based on name */
/* shopkeepers will reset based on name */
if(!mtmp->isshk) {
if (is_unicorn(mtmp->data) &&
sgn(u.ualign.type) == sgn(mtmp->data->maligntyp))
mtmp->mpeaceful = TRUE;
else
mtmp->mpeaceful = peace_minded(mtmp->data);
}
set_malign(mtmp);
} else if (monstermoves > omoves)
mon_catchup_elapsed_time(mtmp, monstermoves - omoves);