fix github issue #477 - incorrect MC calculation
when wearing an amulet. Wearing any amulet while having the Protected attribute was conferring an amulet of guarding's +2 MC bonus. Mattered when Protected via worn ring(s) of protection or wearing Mitre of Holiness or wielding Tsurugi of Muramasa for hero, or the latter two or being a high priest[ess] for monsters. (Being Proteced via cloak of protection already yields maximum MC, or via amulet of guarding yields intended result.) The fixes37.0 entry oversimplifies. Fixes #477
This commit is contained in:
@@ -563,6 +563,8 @@ avoid complaints of "nothing to foo" for 'force_invmenu' if there are no
|
|||||||
likely candidates to foo with but there are hidden acceptable choices
|
likely candidates to foo with but there are hidden acceptable choices
|
||||||
avoid "Not carrying anything. Never mind." for 'force_invmenu'
|
avoid "Not carrying anything. Never mind." for 'force_invmenu'
|
||||||
'altmeta' option could be toggled On but once On could not be toggled back Off
|
'altmeta' option could be toggled On but once On could not be toggled back Off
|
||||||
|
wearing a ring of protection and any amulet behaved as if wearing an amulet of
|
||||||
|
guarding when determining MC value
|
||||||
|
|
||||||
curses: 'msg_window' option wasn't functional for curses unless the binary
|
curses: 'msg_window' option wasn't functional for curses unless the binary
|
||||||
also included tty support
|
also included tty support
|
||||||
|
|||||||
@@ -902,7 +902,7 @@ magic_negation(struct monst *mon)
|
|||||||
if (armpro > mc)
|
if (armpro > mc)
|
||||||
mc = armpro;
|
mc = armpro;
|
||||||
} else if ((o->owornmask & W_AMUL) != 0L) {
|
} else if ((o->owornmask & W_AMUL) != 0L) {
|
||||||
via_amul = TRUE;
|
via_amul = (o->otyp == AMULET_OF_GUARDING);
|
||||||
}
|
}
|
||||||
/* if we've already confirmed Protection, skip additional checks */
|
/* if we've already confirmed Protection, skip additional checks */
|
||||||
if (is_you || gotprot)
|
if (is_you || gotprot)
|
||||||
@@ -917,7 +917,8 @@ magic_negation(struct monst *mon)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gotprot) {
|
if (gotprot) {
|
||||||
/* extrinsic Protection increases mc by 1; 2 for amulet */
|
/* extrinsic Protection increases mc by 1 (2 for amulet of guarding);
|
||||||
|
multiple sources don't provide multiple increments */
|
||||||
mc += via_amul ? 2 : 1;
|
mc += via_amul ? 2 : 1;
|
||||||
if (mc > 3)
|
if (mc > 3)
|
||||||
mc = 3;
|
mc = 3;
|
||||||
|
|||||||
Reference in New Issue
Block a user