diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 34cdffc71..a20c06e8a 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -354,6 +354,7 @@ put throne room gold in the chest wielding Trollsbane prevents trolls from reviving wielding Demonbane prevents demons summoning friends wielding Dragonbane confers reflection +wielding Ogresmasher grants 25 constitution Elbereth must now be on a square by itself to function Elbereth now erodes based on attacks by the player, not monsters scared novels are made of paper, not gold diff --git a/src/attrib.c b/src/attrib.c index 5c80c5ed2..bdb1ff1f1 100644 --- a/src/attrib.c +++ b/src/attrib.c @@ -1002,6 +1002,9 @@ int x; && (youmonst.data->mlet == S_NYMPH || u.umonnum == PM_SUCCUBUS || u.umonnum == PM_INCUBUS)) return (schar) 18; + } else if (x == A_CON) { + if (uwep && uwep->oartifact == ART_OGRESMASHER) + return (schar) 25; } else if (x == A_INT || x == A_WIS) { /* yes, this may raise int/wis if player is sufficiently * stupid. there are lower levels of cognition than "dunce". @@ -1047,6 +1050,9 @@ int attrindx; /* lower limit for Str can also be 25 */ if (uarmg && uarmg->otyp == GAUNTLETS_OF_POWER) lolimit = hilimit; + } else if (attrindx == A_CON) { + if (uwep && uwep->oartifact == ART_OGRESMASHER) + lolimit = hilimit; } /* this exception is hypothetical; the only other worn item affecting Int or Wis is another helmet so can't be in use at the same time */ diff --git a/src/cmd.c b/src/cmd.c index 35ffe9c1f..317405b45 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1638,6 +1638,8 @@ int mode, final, attrindx; break; case A_CON: attrname = "constitution"; + if (uwep && uwep->oartifact == ART_OGRESMASHER && uwep->cursed) + hide_innate_value = TRUE; break; case A_INT: attrname = "intelligence"; diff --git a/src/wield.c b/src/wield.c index 929d45c82..4df6c3615 100644 --- a/src/wield.c +++ b/src/wield.c @@ -96,6 +96,9 @@ register struct obj *obj; if (!Blind) pline("%s shining.", Tobjnam(olduwep, "stop")); } + if (uwep == obj && ((uwep && uwep->oartifact == ART_OGRESMASHER) + || olduwep && olduwep->oartifact == ART_OGRESMASHER)) + context.botl = 1; /* Note: Explicitly wielding a pick-axe will not give a "bashing" * message. Wielding one via 'a'pplying it will. * 3.2.2: Wielding arbitrary objects will give bashing message too.