non-moving goal-oriented monsters
Monsters with goals like M3_WANTSBOOK often wouldn't move if another monster was standing on the the goal object, add code for the missing case
This commit is contained in:
@@ -427,6 +427,7 @@ make wands of speed or slow monster known if their effect
|
|||||||
on monsters is observed; likewise for speed boots
|
on monsters is observed; likewise for speed boots
|
||||||
gold detection "materially poor" message inappropriate if you have hidden_gold()
|
gold detection "materially poor" message inappropriate if you have hidden_gold()
|
||||||
cannot reflect back an invisible umber hulk or medusa's attack
|
cannot reflect back an invisible umber hulk or medusa's attack
|
||||||
|
monsters with M3_WANTSBOOK often couldn't move in the Wizard-level
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
+18
-14
@@ -341,21 +341,25 @@ tactics(mtmp)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
if(where == STRAT_GROUND) {
|
if(where == STRAT_GROUND) {
|
||||||
if(!MON_AT(tx, ty) || (mtmp->mx == tx && mtmp->my == ty)) {
|
if(!MON_AT(tx, ty) || (mtmp->mx == tx && mtmp->my == ty)) {
|
||||||
/* teleport to it and pick it up */
|
/* teleport to it and pick it up */
|
||||||
rloc_to(mtmp, tx, ty); /* clean old pos */
|
rloc_to(mtmp, tx, ty); /* clean old pos */
|
||||||
|
|
||||||
if ((otmp = on_ground(which_arti(targ))) != 0) {
|
if ((otmp = on_ground(which_arti(targ))) != 0) {
|
||||||
if (cansee(mtmp->mx, mtmp->my))
|
if (cansee(mtmp->mx, mtmp->my))
|
||||||
pline("%s picks up %s.",
|
pline("%s picks up %s.",
|
||||||
Monnam(mtmp),
|
Monnam(mtmp),
|
||||||
(distu(mtmp->my, mtmp->my) <= 5) ?
|
(distu(mtmp->my, mtmp->my) <= 5) ?
|
||||||
doname(otmp) : distant_name(otmp, doname));
|
doname(otmp) : distant_name(otmp, doname));
|
||||||
obj_extract_self(otmp);
|
obj_extract_self(otmp);
|
||||||
(void) mpickobj(mtmp, otmp);
|
(void) mpickobj(mtmp, otmp);
|
||||||
return(1);
|
return(1);
|
||||||
} else return(0);
|
} else return(0);
|
||||||
}
|
} else {
|
||||||
|
/* a monster is standing on it - cause some trouble */
|
||||||
|
if (!rn2(5)) mnexto(mtmp);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
} else { /* a monster has it - 'port beside it. */
|
} else { /* a monster has it - 'port beside it. */
|
||||||
(void) mnearto(mtmp, tx, ty, TRUE);
|
(void) mnearto(mtmp, tx, ty, TRUE);
|
||||||
return(0);
|
return(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user