extending u.usaving_grace
Issue a livelog/#chronicle message if saving-grace saves the hero. Right now it's classified as conduct for livelog filtering, because I didn't want to implement a new category (needs update of global.h and also the template 'sysconf') and conduct felt like the best fit of the existing classifications. Report whether saving-grace is available or already used, among the attributes of magical enlightenment or end-of-game disclosure. And move the fixes entry for it from the fixes section to the new features section of fixes3-7-0.txt. It seems likely that someone will want to turn not using saving- grace into a tracked conduct. That seems like overkill to me, not to mention inflating the N for "N conduct games".
This commit is contained in:
@@ -1135,7 +1135,6 @@ give feedback when some types of damage are avoided due to MC (aka negation)
|
||||
feedback if a named, shape-shifted vampire reverted to original shape rather
|
||||
than dying when engulfed could say "Dracula turns into Dracula"
|
||||
adjust archeologist and valkyrie starting intrinsics
|
||||
once per game if receiving killing blow from near-full hp, leave 1 hp
|
||||
spell of knock can knock back small monsters
|
||||
protection from shape changers now prevents the Wizard from mimicking monsters
|
||||
having worn levitation boots removed and destroyed (scroll, monster spell,
|
||||
@@ -2675,6 +2674,14 @@ pyrolisk eggs explode when broken
|
||||
pauper-option to start the character with no possessions
|
||||
wand of secret door detection, spell of detect unseen, and wizard mode ^E now
|
||||
flash the cursor at each location where detection finds something
|
||||
saving-grace: once per game if receiving a killing blow from full or nearly
|
||||
full HP, survive with 1 HP
|
||||
livelog/#chronicle for saving-grace: if saving-grace prevents hero's death,
|
||||
report it [at present, it uses the livelog classification for breaking
|
||||
a conduct]
|
||||
enlightenment/attribute disclosure for saving-grace: include a line for have
|
||||
or haven't been saved (game in progress) or did or didn't get saved
|
||||
(game over) via saving-grace
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
@@ -4045,6 +4045,15 @@ saving_grace(int dmg)
|
||||
}
|
||||
|
||||
if (!u.usaving_grace && dmg >= u.uhp && (u.uhp * 100 / u.uhpmax) > 90) {
|
||||
/* saving_grace doesn't have it's own livelog classification;
|
||||
we might invent one, or perhaps use LL_LIFESAVE, but surviving
|
||||
certain death (or preserving worn amulet of life saving) via
|
||||
saving-grace feels like breaking a conduct; not sure how best
|
||||
to phrase this though... */
|
||||
livelog_printf(LL_CONDUCT, "%s (%d damage, %d/%d HP)",
|
||||
"survived one-shot death via saving-grave",
|
||||
dmg, u.uhp, u.uhpmax);
|
||||
|
||||
/* note: this could reduce dmg to 0 if u.uhpmax==1 */
|
||||
dmg = u.uhp - 1;
|
||||
u.usaving_grace = 1; /* used up */
|
||||
|
||||
@@ -1922,6 +1922,20 @@ attributes_enlightenment(
|
||||
}
|
||||
#endif
|
||||
|
||||
{
|
||||
static const char *verbchoices[2][2] = {
|
||||
{ "might avoid", "have avoided" },
|
||||
{ "could have avoided", "avoided" },
|
||||
};
|
||||
/* u.usaving_grace will always be 0 or 1; final is 0 (game in
|
||||
progress), 1 (game over, survived), or 2 (game over, died) */
|
||||
const char *verb = verbchoices[!!final][u.usaving_grace];
|
||||
|
||||
/* 'verb' has already been set for present or past but enl_msg()
|
||||
needs it twice, one for in progress, the other for game over */
|
||||
enl_msg(You_, verb, verb, " a one-shot death via saving-grace", "");
|
||||
}
|
||||
|
||||
{
|
||||
const char *p;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user