User:Rogerb-on-NAO/sandbox
Contents
Observations
As yet unadded and possibly unverified and/or wholly inaccurate:
Conflict
Pets will not hold you with a "sticky" attack (u.ustuck), unless conflict is in operation (no resist) or your pet is confused. Source:apply.c#line1240 Source:dogmove.c#line571 Source:hack.c#line991
Steeds throw you under conflict, unless they resist. Source:dogmove.c#line513
You get 1-4 hostile angels if you enter Astral with conflict Source:do.c#line1377(but we knew that.) Also, if you put the ring on later and the angel is in range of conflict and doesn't resist, your guardian angel disappears and you get the hostile angels. Source:dogmove.c#line549
If you abuse your pet while under Conflict, tameness is halved, rather than reduced by one. Also if you aggravate monster. Source:dog.c#line918
Pets can attack you under conflict (duh!) but have the chance to resist. Source:dogmove.c#line547
Under conflict, pets will attack peaceful monsters more aggressively; the pet does not have to have 25% HP or more, and it will attack the quest guardians and leader. Otherwise, attack criteria (at Source:dogmove.c#line622 at least) appear unchanged. For example, stonable pets won't touch monsters that stone on touch, even under conflict (this is in contrast to hostile monsters, which mix it up with footrices quite happily. Until they turn to stone, that is.Source:mhitm.c#line279 This inludes you, if you stone on touch Source:mhitu.c#line563) Inconsistency is a bug?
Conflict reduces hunger variable on even turns, unless from an artifact. (we knew that too, except maybe the artifact bit) Source:eat.c#line2144.
When monsters fight each other due to conflict, they have the chance to resist. Source:mhitm.c#line114
Conflict works in an 8-square radius, within line-of-sight. Source:mon.c#line618
Pet mind flayers' psychic attack will blast you if they fail to resist (knew that). Source:monmove.c#line415
Peaceful monsters affected by conflict will wield weapons like hostile monsters Source:monmove.c#line454
Elbereth
Elbereth protects pets' regular attacks Source:dogmove.c#line638. Not so under conflict Source:mon.c#line609.
Engraving Elbereth on a trap (if/when even possible - it is; I engraved on a hole when I escaped it, similarly a trapdoor, a teleport trap with magic resistance, polymorph trap) will prevent a monster using it for escape (although it could probably blunder into it due to bug C343-215) Appears to be the case; kobolds jump on the poly trap ASAP if no Elbereth; won't if there is.
C343-215 - Elbereth is sometimes ignored by monsters affects all play unless you are displaced(!) Source:mon.c#line1098 Intended behaviour, according to Talk:Elbereth is that Elbereth should always be respected, whether or not there is an item there. Source should be altered as follows (untested):
info[cnt] = 0; - if ((checkobj || Displaced) && onscary(dispx, dispy, mon)) { if(!(flag & ALLOW_SSM)) continue; info[cnt] |= ALLOW_SSM; ---- info[cnt] = 0; + if (onscary(dispx, dispy, mon)) { if(!(flag & ALLOW_SSM)) continue; info[cnt] |= ALLOW_SSM;
Monster Movement
Monster movement happens thusly:
mon.c
movemon()
- Foreach monster:
- Do nothing if monster is dead, too slow to move now, unable to move due to being in lava or water or a hidden ambush monster
- If conflict is in operation, resolve for all unblinded monsters, except the Wizard of Yendor.
- Do nothing more for any monster that attacked, unless it has swallowed you (such a monster can do a conflict attack, move and digest you - strictly, it should not move. However, as LOS to the hero is necessary for conflict attacks, how exactly will this occur?)
monmove.c
dochugw()
dochug()
Stunning monsters
Monsters can be stunned, although it is rare. A monster may be stunned when:
- it is hit by Magicbane Source:Artifact.c#line888 (sometimes)
- it is a rust monster and eats an erodeproofed item source:dogmove.c#line180, Source:mon.c#line678
- it hurtles through the air (as a result of jousting or a bare handed/martial arts' powerful strike) Source:dothrow.c#line658
- it is hit by a monster's stun attack Source:mhitm#line1368
- it hits a monster with a passive stun attackSource:mhitm#line670, or you when polymorphed into one (yellow mold) Source:mhitu.c#line2565.
- it opens a trapped door Source:monmove.c#line22
- you hit the monster when polymorphed into a creature with a stun attack (none currently available) Source:uhitm.c#line1295
Stunning a monster:
- reduces its chances of jumping off a closing drawbridge/portcullis Source:Dbridge.c#line509.
- prevents it from evading your kicks Source:dokick.c#line197.
- prevents it from automatically standing still and attacking you if adjacent to you and hostile Source:monmove.c#line478; how this actually affects the outcome I'm not sure, as it should try to approach you and end up hitting you anyway, as I read the code.
- Prevents it from meeting your gaze. Source:polyself.c#line980
- Causes peaceful humanoids to utter "Huh?", "What?" or "Eh?" instead of their usual #chat responses Source:sounds.c#line680.
- Makes it easier to hit (+2) [[Source::uhitm.c#line250]]
- Suppresses the "Foo appears confused" message from hitting a monster after casting Spellbook of confuse monster Source:uhitm.c#line1059
Monsters can recover from stunning:
- While you are not on their level. The chances are 50% after 10 turns Source:dog.c#line438 (yes this applies to all monsters although the code is in dog.c).
- Each turn; 1/10 chance (mean stun time of 10 turns) Source:monmove.c#line342.
- by using a unicorn horn, if they have hands. Unicorns can use their own horn Source:muse.c#line275 Source:muse.c#line546
Monsters' stun status can be ascertained:
- by applying a stethoscope
- by probing a monster with a wand of probing Source:zap.c#line230 Source:zap.c#line2172 or Magicbane Source:artifact.c#line879
WikiHack Errors?
magic flute - area of effect sqrt(xplevel*5) , puts to sleep unless resists.
Sink - nasssty tablesssess
Tourist should mention it has a macro to be compiled out.
Valkyrie femaleness needs clarification/correction (males can be "Daddy!").
Guidebook redirects to options are majorly b0rked.
Dungeon level#Dungeon levels and difficulty levels - true but misleading.
Following pages have monster template issues:
- spheres (none)
- gas spore (none)
- cockatrice (2 not in sections)
- mind flayer (2 not in sections)
- mimic (3 not in sections) possibly use a single template?
- werecreature (6 not in sections)
- long worm (2 not in sections)
- purple worm
- centaur
- dragon
- Keystone Kops
- Yendorian army
- watchman
Buggy?
Vampires are scared by altars of Moloch.
Xorns can walk through walls but get stuck in lava (i.e. liquid rock). Strange, but could be intended behaviour. I would expect lava to affect Xorns like a rather hot pit. Lava is a bit mean anyway, as it will kill a fire resistant, unbreathing hero(check). No idea of the justification.
Broken wands of lightning don't blind.
Capitalisation of angelic beings? (Archon, Angel, Aleax vs ki-rin, couatl)?
Source:muse.c#line276 - some unicorns have hands?! At least reverse the order as nohands() is cheaper, and more monsters don't have hands than are unicorns. Also, ISTR that unicorns revived with a wand of undead turning don't drop (as many) unicorn horns; should such unicorns be able to heal themselves? Yes: "The white unicorn's recently regrown horn crumbles to dust."
Dismounting and remounting a steed may heal its legs?
Stunned monsters appear to move normally; appr is not set to 0 in m_move(), but is for confusion. This is in contrast to players, where stunning has a stronger effect on movement than confusion.
Stoning (killing?) a pet who is lifesaved produces a peaceful monster. Wouldn't it be angry?
Monsters that steal then teleport don't try to wear the stuff they've stolen.
The 'elf' monster is the same difficulty as player monsters, presumably because it used to be a role. It should (?) be the same difficulty as human/dwarf/gnome/orc monsters, for consistency.
All player monsters are same speed? Should roles with intrinsic speed be faster?
Digging a pit by a moat usually produces a moat. Evaporating a pool by a moat always produces a pit.
Drowning does not use the usual routine for determining what to call water (mhitu.c, line 1233; trap.c, line 2947; mkmaze.c, line 1147)
Passive attacks with zero dice do (actual level + 1) dice to players (uhitm.c, line 2150), but (base level + 1) to monsters (mhitm.c, line 1292, mhitu.c, line 2464.
dlord() in minion.c
A random demon lord between Juiblex and Yeenoghu is chosen up to 20 times, in an attempt to find one that has not been created already. Unless the altar is unaligned, the alignment of the demon must match the alignment of the altar.
Currently, Yeenoghu follows Juiblex in monst.c. Thus only these two demons are eligible to appear. As both are chaotic, demon lords will only be summoned at chaotic altars. To the casual observer, this has the appearance of a bug.
Random
V vampires are not only scared by being hit by a clove of garlic, wielded (tested) or thrown (unverified; yet to hit one!), but they will not step on a square if there is a clove of garlic on it! Source:mon.c#line1138
monarticle test
control
*{{User:Rogerb-on-NAO/monsymlink|gnome king}}
*{{User:Rogerb-on-NAO/monsymlink|gnome king|after}}
*{{User:Rogerb-on-NAO/monsymlink|gnome king|before}}
*{{User:Rogerb-on-NAO/monsymlink|gnome king|only}}
*{{User:Rogerb-on-NAO/monsymlink|gnome king|none}}
irregular
*{{User:Rogerb-on-NAO/monsymlink|Death}}
*{{User:Rogerb-on-NAO/monsymlink|Death|after}}
*{{User:Rogerb-on-NAO/monsymlink|Death|before}}
*{{User:Rogerb-on-NAO/monsymlink|Death|only}}
*{{User:Rogerb-on-NAO/monsymlink|Death|none}}