This is a proposal for a comprehensive rework of the alignment
record and divine attitude (anger
) systems in NetHack.
The proposal also touches in some places on luck, in order to ensure
that luck is clearly distinguished from alignment record and divine
attitude.
This is version 0.3 of the proposal and is probably incomplete and will presumably need changes before being implemented.
In the first place, it is clear that the NetHack developers intended for the character's alignment record to be a significant aspect of the game. It is equally clear that most players in 3.4, _especially_ most well-informed players, pay little or no attention to alignment record in ordinary play. It is of some concern in certain kinds of conduct play (notably: pacifists), but otherwise it is essentially a non-issue. Even if the player does something horrifically egregious, such as going on a rampage and killing half a dozen quest friendlies, a few thousand turns of normal play, without direct regard for the issue of alignment record, will generally restore it to its maximum value. Minor penalties, such as being a caitiff or a glutton, are routinely ignored entirely.
Note that I am not suggesting these things should be impossible or should make the game unwinnable. I am only saying that the fact that players routinely do them flippantly without even thinking about the issue of alignment record is an indicator that alignment record is not doing what it's supposed to do in the game. This harms the game in a number of ways, not least in reducing the amount of differentiation between the three alignments (and also some of the roles), which makes the game more uniform, less varied, and ultimately more boring. A knight who chooses to scare monsters so he can shoot them in the back while they flee, or a lawful samurai who chooses to poison his arrows, should have to take into account what implications that will have for his alignment record and what impact that will have on him and what he might have to do subsequently in order to repair his alignment.
Additionally, there are places in which the alignment record gets conflated with divine attitude (your character's diety's anger or lack thereof) and/or luck. We propose to clear up the distinctions between these properties so that each one fulfills its own clearly-defined purpose in the game.
With that in mind, I present here the beginnings of a preliminary tentative proposal. It is understood that these changes will need to be tested for play balance and that some adjustments may need to be made, but here is a starting point.
Alignment record (the main focus of this document) is intended to
represent your character's own devotion to his cause, insofar as
this devotion has manifested itself in your character's behavior in
the game. Your alignment record is visible at all times to your
diety, probably to other dieties as well, and may also impact your
character's reputation
in the dungeon (and thus how he
is treated by other monsters).
Divine attitude (traditionally, anger
) is intended to
represent your character's diety's attitude toward your character
and, consequently, the diety's willingness to intervene
supernaturally. This is distinct from your alignment record but
may at times be somewhat interdependent with it. (To put this
another way, asking favors from your diety when you have
transgressed your moral bounds too much may cause divine anger;
and, conversely, some actions that might be considered morally
valid under normal circumstances may be considered improper when
your diety is upset with you, because an annoyed diety is less
willing to cut you some slack on the gray areas.)
That leaves luck. Philosophically, at a superficial level, luck
might seem unrelated, but actually in theological terms it is
extremely similar to divine attitude. The difference is, luck
manifests in non-supernatural ways as ordinary events shape
themselves more (or more often) for your character's benefit (what
theologians would call providence
, which is distinguished
from miraculous intervention). Of course, NetHack draws heavily on
folk lore, so your character's luck is often influenced by actions
and events with no real moral significance, including old wive's
tales (e.g., the breaking of mirrors) and in some cases puns.
There is a strong relationship between luck and unicorns,
which I do not intend to change significantly. Your diety
may also change your luck, most obviously by granting you
four-leafed clovers. Events that are influenced by luck
are too many and too diverse to list here.
In the first place, a distinction is to be made between actions that change your character's alignment record outright versus ones that only exercise or abuse it. Exercise and abuse will work much like with attributes such as strength or intelligence, but for alignment the check may be made with less frequency and/or yield a lower chance of actually changing the alignment record when it is checked. (The precise details will need balance testing.)
Actions that change the alignment record outright (especially ones that improve it) will generally be limited by game circumstances. You will not be able to easily set up a situation where you can repeatedly increase your alignment record unconditionally. Your character may occasionally encounter opportunities to increase his alignment, but he may also play through a dozen levels without seeing such a chance, and so a character who has repeatedly abused his alignment, or who has transgressed in a manner that unilaterally docked it, or a character who wants to raise his alignment record to pious so he can gain admittance to the quest1, may have to exercise his alignment many times.
Events that change, exercise, or abuse your alignment record include your behavior toward other monsters, your personal moral code (some of which is role-dependent), your role-specific quest, and your overall mission to retrieve the Amulet.
Because increasing alignment will be harder than in 3.4, all roles will start the game positively aligned. I don't know if they will all start at the same alignment number (this will need to be worked out in role balance testing), but all roles will start with a positive alignment. (In 3.4, some roles start at 0, and most players never notice.)
The maximum/cap on alignment can be left as it is for now, at least until we see how the first round of changes works. The major difference from 3.4 will be that characters won't necessarily be constantly at their maximum alignment all the time.
In general, any time your alignment record is changed outright, exercised, or abused, some kind of message should be printed. In some cases this may be a message that was already being printed anyway in 3.4, and in other cases it will be new. As with many things in NetHack, the message may not always be entirely clear about exactly what is happening, and in some cases it may even be ambiguous, and in some situations it may be printed even if there is no change to your alignment. So the near-mythical unspoiled player will be kept guessing somewhat, but at least a message was printed that clues them in that something may have happened that may be significant.
Note that once the basic system is reasonably balanced, tweaking or augmenting the role-specific stuff will be feasible, providing an additional way to differentiate roles (so that they naturally play best in different styles) in a manner that is actually meaningful. Some role-specific details are included below (near the bottom), but more work in that regard can be done later, once the basics are in place.
I propose a signed value for divine attitude, where positive numbers represent divine favor and negative ones represent anger. This involves a sign change (multiply by -1 or subtract from 0) compared to version 3.4.
Events that change divine attitude should all involve interaction of some kind with your diety (e.g., prayer, sacrifice) or with the accoutrements of the religious system (altars, priests, etc.), but these changes may also be influenced by other factors, such as alignment record and even luck. For example, when you pray, your diety's decision on whether to have a more positive or a more negative or the same attitute toward you may depend partly on these other factors. If you pray when your alignment record is terrible, for instance, your diety may be angered; sacrifice may be less effective at improving your diety's attitude if your luck is terrible, or that sort of thing. Nonetheless, divine attitude should only be changed in situations where you are interacting with your diety or with the accoutrements of religion.
Likewise, the results of divine attitude will generally manifest in your diety's willingness (or lack thereof) to help you out when you interact with your diety through such means as prayer or sacrifice.
Benefits of having a positive value here (other than being able to lose some favor later without going negative into anger) have not yet been determined but would presumably involve improved chances of gaining favors from your diety. This would need to be play-tested for balance.
For the most part, I do not propose to change luck very much; but it is included in this document because there are some places where luck in 3.4 is more mixed up with alignment record and morality than it really should be. I propose a few changes in order to make the boundaries between them more clear and more consistent.
Things that influence luck should do so in the same way for all characters, regardless of role or alignment (Law/Neu/Cha) and should NOT be related to the character's devoutness in following his moral code or pursuing the service of his diety. For the most part, this is already the case. There are a handful of exceptions, however, which I propose to eliminate by converting luck changes to alignment record changes or potential changes, such as in the following cases:
Of note, there is also a luck penalty for praying too soon
,
which I do not propose to change. My current thinking is
that this luck penalty represents the fact that your diety is
cheesed with you, not in a major enough way to do anything
supernatural like a wide-angle disintegration beam or anything, but
annoyed enough to refrain from tilting the odds in your favor in
ordinary, non-supernatural situations. My reasoning for not making
this an alignment penalty is, you haven't done anything wrong, in
the sense of violating your moral code. Your diety was simply not
wanting to hear from you at the time when you prayed and so is
annoyed. (NetHack dieties are impatient and inattentive, rather
like the ones in Greek mythology.) An argument could be made
for making this a divine attitude penalty (anger), but that
seems unnecessarily harsh. Bad luck is more easily repaired.
I do not intend to address the question of luck penalties in Sokoban at this time, as that issue is really not related to the alignment record overhaul.
Characters Affected | Action or Event | Extant Changes in 3.4 | Proposed Changes | Notes | Source citation | |||||
---|---|---|---|---|---|---|---|---|---|---|
Alignment | Role | alignment | anger | luck | alignment | divine attitude | luck | |||
All | All | killing (most) monsters | various, depends on monster alignment | none | This is the biggest change. | mon.c 1903 | ||||
killing your quest leader | -(u.ualign.record +(int)ALIGNLIM/2) | unchanged | mon.c 1879 | |||||||
killing your quest nemesis | (int)(ALIGNLIM/4) | (int)(ALIGNLIM/4) once only | mon.c 1883 | |||||||
killing a quest guardian | -(int)(ALIGNLIM/8) | -(int)(ALIGNLIM/8) | may need balance testing | mon.c 1885 | ||||||
killing a coaligned priest | -2 | -2 | divine protection lost also | mon.c 1889 | ||||||
killing a cross-aligned priest | +2 | +2 | maybe less; will need balance testing | mon.c 1889 | ||||||
killing a priest of Moloch | +2 +(int)(ALIGNLIM / 4) | +2 | maybe less; will need balance testing | mon.c 1889, 1893 | ||||||
killing a peaceful monster | -5 | abuse | mon.c 1900 | |||||||
killing a pet outright | -15 | -2 if domestic; -1 otherwise |
mon.c 1895 | |||||||
dismounting your steed, thus killing it | -1 | -2 if domestic -1 otherwise |
steed.c 556, 562, 604 | |||||||
displacing a pet, drowning it | -15 | +1 | -2 if domestic; -1 otherwise |
+0 | hack.c 1352 | |||||
displacing a pet into a trap | -3 | abuse if trap was known | also calls abuse_dog on the pet | hack.c 1344 | ||||||
All | All | angering a co-aligned priest | -5 | -5 | will need balance testing | mon.c 2109 | ||||
angering a non-co-aligned priest | 2 | 2 | will need balance testing | mon.c 2110 | ||||||
praying on a non-coaligned altar | -1 | -1 | +0 | wiki claims a luck penalty; I don't see one, and it doesn't make sense | pray.c 803 | |||||
praying with low alignment when not otherwise in trouble | 1 | exercise | pray.c 805 | |||||||
sacrificing a pet that died tame | -3 | +0 | abuse | -1 | also grants aggravate monster | pray.c 1229 | ||||
sacrificing a cross-aligned unicorn on a co-aligned altar | +5 | exercise | pray.c 1251 | |||||||
sacrificing a co-aligned unicorn on a cross-aligned altar | set to -1 | set to -1 | comment says your god gets angry and it's a conversion | pray.c 1257 | ||||||
sacrificing the Amulet of Yendor on a cross-aligned high altar | -99 | -99 | pray.c 1280 | |||||||
ascending | +10 | +10 | pray.c 1289 | |||||||
All | All | sacrificing an unidentified fake amulet on the high altar | -1 | -1 | -1 | +0 | pray.c 1308 | |||
sacrificing an identified fake amulet on the high altar | -1 | +3 | -3 | -3 | -3 | +0 | value=-3; | pray.c 1313 | ||
converting your alignment by sacrifice | (int)(u.ualignbase[A_ORIGINAL] * (ALIGNLIM / 2)) | -3 | same as in 3.4 | +0 | prayer timeout += 300 | pray.c 1365 | ||||
rejected sacrifice on a cross-aligned altar | -5 | +3 | -5 | abuse | -3 | +0 | abuses wisdom; calls angrygods if !Inhell | pray.c 1368 | ||
partially absolving sacrifice when ugod_is_angry() | value | value | pray.c 1442 | |||||||
getting your prayer timeout reduced through sacrifice | +1 if < 0 | +1 if < 0 | pray.c 1454 | |||||||
reconciling (prayer timeout to zero) through sacrifice | set to 0 if < 0 | set to 0 if < 0 | pray.c 1460 | |||||||
donating 0zm to a co-aligned temple | -1 | abuse | priest.c 483 | |||||||
buying clairvoyance from an aligned priest, if your alignment is ALGN_SINNED or worse | +1 | +1 | priest.c 503 | |||||||
donating more than u.ulevel * 600 and more than half your gold, when you have strayed | set to 0 | divide in half and add 1 | can only happen once every 5000 turns | priest.c 523 | ||||||
donating more than u.ulevel * 600 and more than half your gold, otherwise | +2 | exercise | priest.c 526 | |||||||
All | All | freeing a quest prisoner | +3 | exercise | also calls angry_guards() | quest.c 339 | ||||
killing a quest prisoner you freed | -3 | |||||||||
angering a peaceful monster other than a priest | -1 | abuse | mon.c 2112 | |||||||
Sam | attacking a peaceful monster | -1 | abuse | will not take you below -10 | uhitm.c 245 | |||||
Mon | eating meat | -1 | abuse | eat.c 992 | ||||||
Arc | animating or breaking an historic statue | -1 | -1 | or could be changed to abuse | trap.c 498; zap.c 3807 |
|||||
Hea | healing something tame or peaceful | +1 | exercise | note: this makes alignment easy for healers | zap.c 282 | |||||
Law | All | sacrificing your own race | -5 | +3 | -5 | -5 | -3 | 0 | also abuses wisdom; calls angrygods() if !Inhell |
pray.c 1214 |
genociding something M2_HUMAN | -1 | abuse | -sgn(u.ualign.type) | read.c 1636 | ||||||
genociding something M2_DEMON | +1 | exercise | sgn(u.ualign.type) | read.c 1637 | ||||||
declining to pay for shop damage | -1 | abuse | also calls hot_pursuit() | shk.c 3597 | ||||||
successfully untrapping a monster | +1 | exercise | may need additional work | trap.c 3177 | ||||||
lying to a vault guard | -1 | abuse | vault.c 273 | |||||||
Law | Kni | gluttony | -1 | abuse | should probably apply to Cha and Neu also | eat.c 234 | ||||
digging down in a shop | -1 | abuse | should be expanded to include other shop-related infractions that amount to theft | shk.c 3351, 3368 | ||||||
being a caitiff | -1 | abuse | will not take you below -10; should probably apply to Neu Kni also, maybe Cha | check_caitiff() in uhitm.c | ||||||
Sam | using a poisoned weapon | -1 | abuse | -sgn(u.ualign.type) | uhitm.c 915 | |||||
Arc | digging up a grave | -3 | -1 | -sgn(u.ualign.type)*3 | dig.c 772 | |||||
Law | non-Arc | digging up a grave | -1 | -1 | -sgn(u.ualign.type) | dig.c 775, 778 | ||||
non-Rog | escaping a shop without paying | -1 | -1 | -sgn(u.ualign.type) | shk.c 495 | |||||
making the shopkeeper happy again | +1 | +1 | sgn(u.ualign.type) | shk.c 985 | ||||||
non-Sam | using a poisoned weapon | -1 | abuse | will not take you below -10 | uhitm.c 918 | |||||
non-Hea | healing something tame or peaceful | +1 | +0 | this would be unbalancing | zap.c 282 | |||||
Cha | All | being seduced | +1 | +0 | Too easily recreated. | mhitu.c 2277 | ||||
sacrificing your own race | 5 | exericise | pray.c 1219 | |||||||
genociding something M2_HUMAN | +1 | +0 | -sgn(u.ualign.type) | read.c 1636 | ||||||
genociding something M2_DEMON | -1 | abuse | sgn(u.ualign.type) | read.c 1637 | ||||||
declining to pay for shop damage | +1 | +0 | also calls hot_pursuit() | shk.c 3597 | ||||||
Cha | Arc | digging up a grave | +3 | abuse | -sgn(u.ualign.type)*3 | dig.c 772 | ||||
Sam | digging up a grave | +1 | abuse | -sgn(u.ualign.type) | dig.c 775 | |||||
using a poisoned weapon | +1 | abuse | -sgn(u.ualign.type) | uhitm.c 915 | ||||||
Kni | digging down in a shop | +1 | abuse | should be expanded to include other shop-related infractions that amount to theft | shk.c 3351, 3368 | |||||
non-Rog | escaping a shop without paying | +1 | +0 | -sgn(u.ualign.type) | shk.c 495 | |||||
making the shopkeeper happy again | -1 | +0 | sgn(u.ualign.type) | shk.c 985 | ||||||
non-Hea | healing something tame or peaceful | -1 | abuse | sgn(u.ualign.type) | zap.c 282 | |||||
Neu | All | sacrificing your own race | -5 | +3 | -5 | -5 | -3 | 0 | also abuses wisdom; calls angrygods() if !Inhell |
pray.c 1214 |
Arc | digging up a grave | +0 | abuse | -sgn(u.ualign.type)*3 | dig.c 772 | |||||
Kni | digging down in a shop | +0 | abuse | should be expanded to include other shop-related infractions that amount to theft | shk.c 3351, 3368 | |||||
Sam | using a poisoned weapon | +0 | abuse | -sgn(u.ualign.type) | uhitm.c 915 |
The above table is believed to contain all the situations in which the player's alignment record gets changed in 3.4. I intend to expand it in the next version of the document by adding all situations wherein anger is modified in 3.4, plus a few more situations where luck is changed.
All source citation line numbers are from plain old 3.4.3.
A subsequent version of this document will add a table of situations where the player's alignment record and/or divine anger are consulted to determine an outcome.
Thanks for reading. Comments are welcome.