4 years agoSimplify.
Neil Moore [Thu, 31 Oct 2013 03:30:28 +0000 (23:30 -0400)]

4 years agoSet Abyssal sub-branch when initializing.
Brendan Hickey [Thu, 31 Oct 2013 03:07:19 +0000 (20:07 -0700)]
Set Abyssal sub-branch when initializing.

4 years agoAdd a branch to the abyss.
Brendan Hickey [Tue, 29 Oct 2013 05:22:02 +0000 (22:22 -0700)]
Add a branch to the abyss.

This adds branches to the abyss. These will be used for monster generation.

4 years ago[Transifex] Sync.
Translators [Wed, 30 Oct 2013 22:11:05 +0000 (23:11 +0100)]
[Transifex] Sync.

Signed-off-by: Raphael Langella <>
4 years agoUse French spacing in jump attack descs.
Adam Borowski [Wed, 30 Oct 2013 19:56:15 +0000 (20:56 +0100)]
Use French spacing in jump attack descs.

We standardize on just a single space after full stop (yeah, I hate this
myself, but let's be consistent).

4 years agoRemove reference to increased jump-attack damage and indicate that it uses melee.
gammafunk [Wed, 30 Oct 2013 18:49:18 +0000 (13:49 -0500)]
Remove reference to increased jump-attack damage and indicate that it uses melee.

4 years agoDe-noise Elemental Staff.
Adam Borowski [Wed, 30 Oct 2013 19:38:38 +0000 (20:38 +0100)]
De-noise Elemental Staff.

4 years agoProperly enumerate High Council's player doll tile.
Steve Melenchuk [Wed, 30 Oct 2013 19:36:27 +0000 (13:36 -0600)]
Properly enumerate High Council's player doll tile.

4 years agoDon't space out on unrand inscriptions (#7685).
Steve Melenchuk [Wed, 30 Oct 2013 19:33:29 +0000 (13:33 -0600)]
Don't space out on unrand inscriptions (#7685).

This was being caused by INSCRIP being generated as "" instead of NULL
by default.

4 years agoDe-noise High Council.
Steve Melenchuk [Wed, 30 Oct 2013 19:03:45 +0000 (13:03 -0600)]
De-noise High Council.

This was mostly a relic of its original design.

If it ends up being too powerful after this, I may play with its
impact on spell success rates some more.

4 years agoElemental Staff rework, try 2.
Adam Borowski [Wed, 30 Oct 2013 19:04:45 +0000 (20:04 +0100)]
Elemental Staff rework, try 2.

It's a 100% staff now (per the name) rather than 25% as it was before.
In return, its special damage has been improved, and no longer depends
on the base hit.  The new formula has the same damage as the elec brand
(obeying one of random four resistances), with a chance of proccing
depending on the Evoc skill.

At 27 skill, it does ~2/3 damage of enhancer staves.  It lacks the
power boost (ie, the main reason to use such staves) but its awesome
resists make it a good fixedart.

4 years agoIncrease the size of the description box in species/job selection menu.
Raphael Langella [Wed, 30 Oct 2013 16:49:56 +0000 (17:49 +0100)]
Increase the size of the description box in species/job selection menu.

Most languages are not as concise as english, it's quite hard to fit
translations on 2 lines. Besides, there's plenty of room on the screen.

4 years agoDon't mandate uniqueness of custom inscriptions (pubby)
Neil Moore [Wed, 30 Oct 2013 10:43:41 +0000 (06:43 -0400)]
Don't mandate uniqueness of custom inscriptions (pubby)

4 years agoFix whitespace.
Neil Moore [Wed, 30 Oct 2013 10:32:55 +0000 (06:32 -0400)]
Fix whitespace.

4 years agoFix behaviour event and agentless crash in drain life.
Neil Moore [Wed, 30 Oct 2013 09:26:46 +0000 (05:26 -0400)]
Fix behaviour event and agentless crash in drain life.

Fire an ME_ANNOY rather than ME_WHACK event so that stupid monsters
can't tell where the draining came from; this reflects the change already
made to OTR and Refrigeration in 0.14-a0-299-g49704ef.

Also incorporate the same fix for a missing agent as was applied to
Refrigeration in 0.14-a0-462-g04546ee, as well as a few additional
related fixes.

4 years agoDon't crash on agentless refrigerate.
Neil Moore [Wed, 30 Oct 2013 09:21:27 +0000 (05:21 -0400)]
Don't crash on agentless refrigerate.

This could happen, for example, if an unknown scroll of brand weapon
bestows the freezing brand.  See for example:

4 years agoBrighten centaur tiles
ontoclasm [Wed, 30 Oct 2013 04:28:47 +0000 (23:28 -0500)]
Brighten centaur tiles

4 years agoUnrand: the +2 hat of the High Council {Archmagi, Wiz- Noisy Contam Stlth-}.
Steve Melenchuk [Tue, 29 Oct 2013 19:30:40 +0000 (13:30 -0600)]
Unrand: the +2 hat of the High Council {Archmagi, Wiz- Noisy Contam Stlth-}.

It has an anti-wizardry effect, e.g. it negatively impacts spell success
rates - on the whole, it's basically a hat of wild magic.

There's a minor adjustment here to item name code to get the noises to
display properly.

4 years agoAllow unrands to have a special string added to their inscription.
Steve Melenchuk [Tue, 29 Oct 2013 22:23:42 +0000 (16:23 -0600)]
Allow unrands to have a special string added to their inscription.

For example, Hellfire gains a fake "hellfire" brand inscription.

4 years agoUse dbname for mimic_name() instead of basename.
Steve Melenchuk [Tue, 29 Oct 2013 22:49:14 +0000 (16:49 -0600)]
Use dbname for mimic_name() instead of basename.

Previously, you'd get randart mimics such as "ravenous distressingly
furry chain mail mimic".

4 years agoMacabre finger tile (pubby, 7642)
ontoclasm [Tue, 29 Oct 2013 22:44:11 +0000 (17:44 -0500)]
Macabre finger tile (pubby, 7642)

4 years agoAdd big fat (but not fat or scary enough) warnings about save corruption.
Adam Borowski [Tue, 29 Oct 2013 21:51:26 +0000 (22:51 +0100)]
Add big fat (but not fat or scary enough) warnings about save corruption.

On a modern computer, crawl tends to process commands fast enough that
closing the game is likely to happen during some waiting for event loop,
and thus typically not cause not cause a lock-up or memory corruption
but "merely" allow cheating.  This is not acceptable, and once in a while
you get more classical results of doing naughty stuff from a signal

One way of fixing this would be setting a flag (seen_hups) and killing
any functions that wait for an event.  This can be tricky because:

* ncurses like to sabotage EINTR.  We need to abort it both on SIGHUP
  and on SIGWINCH, without race conditions.  The documentation says
  SIGWINCH is supposed to return a pseudo key code, KEY_RESIZE but
  this doesn't seem to be working.  Not sure how to abort it on HUP.

* win32's console functions don't have an equivalent to EINTR.  Perhaps
  injecting a fake key with WriteConsoleInput would work?

* same for tiles and Android.

* yesno() without a safeanswer will loop forever

4 years agoJoin Snakebite with Sniper, blowgun Assassin, Accuracy and LCS.
Adam Borowski [Tue, 29 Oct 2013 19:32:30 +0000 (20:32 +0100)]
Join Snakebite with Sniper, blowgun Assassin, Accuracy and LCS.

4 years agoCorrect a renamed spell in two Sprints (#7678).
Neil Moore [Tue, 29 Oct 2013 12:40:30 +0000 (08:40 -0400)]
Correct a renamed spell in two Sprints (#7678).

4 years agoUse a member, not a constructor parameter.
Neil Moore [Tue, 29 Oct 2013 12:34:04 +0000 (08:34 -0400)]
Use a member, not a constructor parameter.

4 years agoSuppress Elemental Staff brands.
Neil Moore [Tue, 29 Oct 2013 12:20:03 +0000 (08:20 -0400)]
Suppress Elemental Staff brands.

4 years agoSuppress monster weapon brands.
Neil Moore [Tue, 29 Oct 2013 12:18:59 +0000 (08:18 -0400)]
Suppress monster weapon brands.

4 years agoNerf quitrobin by removing starting gold.
Adam Borowski [Tue, 29 Oct 2013 11:50:57 +0000 (12:50 +0100)]
Nerf quitrobin by removing starting gold.

There are no shops on D:1-3, and with gold being included in score, if you
haven't done jack, you deserve 0 points.

4 years agoSpecify upgrade inhibition in art-data.txt
Adam Borowski [Tue, 29 Oct 2013 11:46:54 +0000 (12:46 +0100)]
Specify upgrade inhibition in art-data.txt

4 years agoUpdate unrands on game load.
Adam Borowski [Tue, 29 Oct 2013 11:34:18 +0000 (12:34 +0100)]
Update unrands on game load.

It's frustrating to recreate them over and over when you're messing with one.

4 years agoShorten the inscription on Elemental Staff a bit.
Adam Borowski [Tue, 29 Oct 2013 11:17:31 +0000 (12:17 +0100)]
Shorten the inscription on Elemental Staff a bit.

Using ARTP_AC instead of a brand saves 4 characters, having both pluses
equal another 3.

4 years agoRework the Elemental Staff.
Adam Borowski [Tue, 29 Oct 2013 10:48:39 +0000 (11:48 +0100)]
Rework the Elemental Staff.

Give it custom sounds and rElec, remove hunger, apply a random brand on hit.

Randart noises seem to not fit it at all.

High rC++, rF++ and rEarth (ie, AC) make the lack of rElec weird -- its
desc says outright "guild of four elements".

4 years agoMerge branch 'banish'
Brendan Hickey [Tue, 29 Oct 2013 04:18:09 +0000 (21:18 -0700)]
Merge branch 'banish'


4 years agoDon't wind blast monsters through walls (Naruni, #7434)
Neil Moore [Tue, 29 Oct 2013 02:00:06 +0000 (22:00 -0400)]
Don't wind blast monsters through walls (Naruni, #7434)

Consider the following situation, with a monster at m and
a wall at %.


The previous code, on seeing that % was blocked, would look for a new
spot adjacent to % and equidistant from @ (compared to %).  The spot
marked ! satisfies the constraints, despite being disconnected from m,
so the monster could be shoved to ! across a wall.

Now we look for spots adjacent to both m and % (and equidistant from @
compared to %).  That way the monster moves step-by-step without
skipping over any potential walls.  In this case, the spot marked ^
is a candidate.

This should also fix some cases of monsters "bouncing" off walls.  Now
if the blast is at a shallow angle (less than 45 degrees, as in the
example above), the monster will slide along the wall; if the angle
is deeeper, the monster will be stuck in place against the wall.

4 years agoA couple of Hell entry vaults.
Steve Melenchuk [Tue, 29 Oct 2013 01:54:38 +0000 (19:54 -0600)]
A couple of Hell entry vaults.

This is mainly to give the builder something smaller than the current
entry vaults to try to place reliably.

I may do up some more as ideas come to me.

4 years agoFallback functionality for chance_ tag groups.
Steve Melenchuk [Tue, 29 Oct 2013 01:14:58 +0000 (19:14 -0600)]
Fallback functionality for chance_ tag groups.

If the original vault picked to fulfill a chance_ tag fails to place, a
vault tagged fallback_ with the same root (so fallback_hell_entry for
chance_hell_entry) will be tried instead.

This is intended to guarantee that important vaults (hell/pan/abyss
portals) will get placed. Right now this isn't actually a guarantee per
se, but the chances that a 1x1 vault fails to place somewhere seem to be
negligible - if this needs to be expanded upon, perhaps we can add the
suggested "guarantee" tag.

4 years agoReplace a weird use of distance_iterator by adjacent_iterator.
Adam Borowski [Mon, 28 Oct 2013 16:47:35 +0000 (17:47 +0100)]
Replace a weird use of distance_iterator by adjacent_iterator.

Not any more efficient (radius_iterator is notoriously slow), but
easier to read.

4 years agoAllow viewing remembered info about out of LOS stuff.
Adam Borowski [Mon, 28 Oct 2013 15:35:56 +0000 (16:35 +0100)]
Allow viewing remembered info about out of LOS stuff.

4 years agoPoint out the location of monsters in wall if DEBUG_FATAL is set.
Adam Borowski [Mon, 28 Oct 2013 15:29:52 +0000 (16:29 +0100)]
Point out the location of monsters in wall if DEBUG_FATAL is set.

Although the "highlight" consisting of a mere '?' is hard to find.

4 years agoRevert "Veto on failure to place a 100% chance vault."
Neil Moore [Mon, 28 Oct 2013 14:27:30 +0000 (10:27 -0400)]
Revert "Veto on failure to place a 100% chance vault."

It caused problems on Forest:5, when uniq_enchantress is vetoed because
the Enchantress already existed.  Reverting for now because we have a
stuck game on the servers; possible fixes are a new "guarantee" tag,
or to distinguish somehow between self-vetoes and failure to place.

This reverts commit 9cddb8dbda336f4ed1ff9473e3800859b5960691.

4 years agoDon't use an obscure word in a comment.
Adam Borowski [Mon, 28 Oct 2013 12:14:47 +0000 (13:14 +0100)]
Don't use an obscure word in a comment.

"Everyone not a moron will know it" is true only in Poland, and contrary
to my unconscious assumption, imported words are not equally widespread
everywhere -- especially that Sienkiewicz got it totally wrong.  With his
novels being until recently mandatory reading he effectively created a
new word.

Thus: "kÄ™sim" -- a writer's impression of Tatar word for "decapitation".
Isn't "learn a word a day" fun?

4 years agoDon't impose TSO penance for reflecting poison/draining (you still get xp).
Adam Borowski [Mon, 28 Oct 2013 12:01:03 +0000 (13:01 +0100)]
Don't impose TSO penance for reflecting poison/draining (you still get xp).

This introduces a new pseudo-agent, akin to ANON_FRIENDLY_MONSTER.

4 years agoMove some boring test settings aside.
Adam Borowski [Mon, 28 Oct 2013 09:15:59 +0000 (10:15 +0100)]
Move some boring test settings aside.

There's no reason to change them whatsoever; a particular test will set them
explicitely if it matters.

4 years agoDrop a token file into test/big/
Adam Borowski [Mon, 28 Oct 2013 08:25:03 +0000 (09:25 +0100)]
Drop a token file into test/big/

git would remove the directory otherwise.

4 years agoVastly shorten test/big/abyss_shift.lua, enable it by default.
Adam Borowski [Mon, 28 Oct 2013 08:22:47 +0000 (09:22 +0100)]
Vastly shorten test/big/abyss_shift.lua, enable it by default.

Although, it doesn't do anything stress tests wouldn't catch.

4 years ago"./crawl -test list" to enumerate available internal tests.
Adam Borowski [Mon, 28 Oct 2013 07:54:57 +0000 (08:54 +0100)]
"./crawl -test list" to enumerate available internal tests.

(We also got "canned" tests which are scripted using regular arena or game.)

Our Makefile deserves a good heap of profanity, as you can't recurse nor run
targets whose list of dependencies depends on something itself.  This is
because you can't just "make foo", you need to "make debug foo" or it will
f*** up your build, and the list of such required extra arguments is hard
to copy -- it can include compiler flags, EXTERNAL_DEFINES, etc.

4 years agoA couple more test cases.
Adam Borowski [Mon, 28 Oct 2013 07:28:43 +0000 (08:28 +0100)]
A couple more test cases.

4 years agoAdditional gargoyle base tiles (Xion350, 7631)
ontoclasm [Mon, 28 Oct 2013 00:27:29 +0000 (19:27 -0500)]
Additional gargoyle base tiles (Xion350, 7631)

4 years agoIcon for durably-summoned monsters
ontoclasm [Mon, 28 Oct 2013 00:25:18 +0000 (19:25 -0500)]
Icon for durably-summoned monsters

4 years agoEven out the distribution by dungeon level of the food vaults.
Steve Melenchuk [Mon, 28 Oct 2013 00:48:38 +0000 (18:48 -0600)]
Even out the distribution by dungeon level of the food vaults.

Having looked at the code for chance_ tags in detail while enabling the
possibility of Hell/Pan/Abyss entry vaults, I realised that there were a
lot of problems with the way the food vaults were being handled; in
particular the CHANCE: tags attached to the vaults, despite being
different from vault to vault, didn't actually have the intended effect
of weighting the various vaults against one another.

I've decided to give the food vaults an even distribution over the
ranges which they can appear in (i.e. they have an even probability of
appearing on any given level in the ranges in which they can appear),
and WEIGHT them as intended against one another.

While I'm at it, this fixes a bug in grunt_ogre_cave which gave a 50%
chance of placing a two-headed ogre on D:7. It should have been a zero
percent chance.

4 years agoActually init per-game seeds outside save transfers.
Adam Borowski [Sun, 27 Oct 2013 22:33:48 +0000 (23:33 +0100)]
Actually init per-game seeds outside save transfers.

4 years agoMake -test NORETURN and easier to valgrind.
Adam Borowski [Sun, 27 Oct 2013 21:58:55 +0000 (22:58 +0100)]
Make -test NORETURN and easier to valgrind.

4 years agoFix a --test crash.
Adam Borowski [Sun, 27 Oct 2013 20:28:56 +0000 (21:28 +0100)]
Fix a --test crash.

Somehow, it was broken by 0.8.0-a0-33-g1659bee, yet no one runs --test in
optimized builds, mostly because of makefile inadequacies.

4 years agoRemove some unused commands
Chris Campbell [Sun, 27 Oct 2013 20:53:54 +0000 (20:53 +0000)]
Remove some unused commands


4 years agoUse a COMPILE_CHECK instead of an ASSERT.
Adam Borowski [Sun, 27 Oct 2013 22:01:39 +0000 (23:01 +0100)]
Use a COMPILE_CHECK instead of an ASSERT.

4 years agoUse the proper #define for berserk hunger boundary.
Adam Borowski [Sun, 27 Oct 2013 21:56:48 +0000 (22:56 +0100)]
Use the proper #define for berserk hunger boundary.

4 years agoImprove a variable name.
Neil Moore [Sun, 27 Oct 2013 19:26:02 +0000 (15:26 -0400)]
Improve a variable name.

4 years agoEnd the tournament.
Neil Moore [Sun, 27 Oct 2013 20:00:00 +0000 (16:00 -0400)]
End the tournament.

4 years agoDrop an untrue comment.
Adam Borowski [Sun, 27 Oct 2013 18:45:27 +0000 (19:45 +0100)]
Drop an untrue comment.

When the last monster is being dismissed, almost surely its side has been
marked as a victor.  We can mark it as a tie, but it's a debatable situation
so it doesn't really matter.

One typical scenario is when miscasts are on, and the last monster gets

4 years agoDon't consider a hard_reset dismissal on the arena to be an error.
Adam Borowski [Sun, 27 Oct 2013 18:42:38 +0000 (19:42 +0100)]
Don't consider a hard_reset dismissal on the arena to be an error.

4 years agoSync manual from Wiki.
Neil Moore [Sun, 27 Oct 2013 18:35:23 +0000 (14:35 -0400)]
Sync manual from Wiki.

4 years agoRemove the =s inscription
Chris Campbell [Sun, 27 Oct 2013 18:05:47 +0000 (18:05 +0000)]
Remove the =s inscription

It does nothing, since stash tracking is always enabled.

4 years agoFix an use-after-free crash.
Adam Borowski [Sun, 27 Oct 2013 18:02:39 +0000 (19:02 +0100)]
Fix an use-after-free crash.

When doing bad things to a monster from within an enchantment, sometimes the
enchantment goes away -- most often together with the monster's life.  Trying
to decay it at that moment is unwise.

4 years agoAdjust some guarded_unrand vaults
Chris Campbell [Sun, 27 Oct 2013 16:53:10 +0000 (16:53 +0000)]
Adjust some guarded_unrand vaults

Move _robustness deeper and replace the golems and gargoyles with iron
trolls and an iron dragon.
Reduce the number of crystal guardians in _dyrovepreva.
Add no_pickup to some of the unrands, to prevent wandering monsters from
entering the vault and bringing the unrands out.

4 years agoDon't allow Vampires to be lichformed
Chris Campbell [Sat, 26 Oct 2013 22:41:47 +0000 (23:41 +0100)]
Don't allow Vampires to be lichformed

4 years agoFix Xom's lifesaving on unhandled mutations.
Adam Borowski [Sun, 27 Oct 2013 11:40:04 +0000 (12:40 +0100)]
Fix Xom's lifesaving on unhandled mutations.

Doing them explicitely is bound to keep going out of sync; if the act of
adding/removing a mutation killed you, it must have been the mutation's
fault, and thus undoing the addition/removal is always a good idea.

This is not guaranteed to help by itself -- a stat-changing mutation while
the stat is < 0 merely did some damage, but not digging the player deeper
is helpful towards the stat death not reoccuring.

4 years agoKill the player upon gaining frail / losing robust / etc mutations.
Adam Borowski [Sun, 27 Oct 2013 11:22:18 +0000 (12:22 +0100)]
Kill the player upon gaining frail / losing robust / etc mutations.

4 years agoVeto on failure to place a 100% chance vault.
Steve Melenchuk [Sun, 27 Oct 2013 14:30:47 +0000 (08:30 -0600)]
Veto on failure to place a 100% chance vault.

This is intended to preserve the chance that important vaults such as
Hell entries place properly.

Ideally what I'd want to do is have it try another map if one of the
Huge Maps fail to place (i.e. some kind of fallback for chance tags),
but this is much easier to implement in the short term.

4 years agoRefactor additional messages for new monsters spawning.
Adam Borowski [Sat, 26 Oct 2013 14:02:11 +0000 (16:02 +0200)]
Refactor additional messages for new monsters spawning.

Not sure why do we need both these and "comes into view".

This includes simplification of:
* shoving the player out of stairs
* "wandering" monsters spawning on the stairs
* fancy messages for in-LOS abyss spawns

For the last part, they had really obscure probabilities, this commit makes
them easier to read.  Also, it avoid mallocs and RNG calls, but that's a
rather negligible optimization.

This commit eliminates a mysterious call to viewwindow() as well.  A comment
claimed that "Special case: must update the view for monsters created in
player LOS." yet this was not done for band members.  It appears removing
that call has no ill effects, but I might have missed something.

4 years agoAs abyss monster creation messages imply visible, simplify.
Adam Borowski [Sat, 26 Oct 2013 06:59:56 +0000 (08:59 +0200)]
As abyss monster creation messages imply visible, simplify.

4 years agoShorten.
Adam Borowski [Fri, 25 Oct 2013 04:40:27 +0000 (06:40 +0200)]

4 years agoRebase hunger values at 0 (from 100).
Adam Borowski [Thu, 24 Oct 2013 21:14:15 +0000 (23:14 +0200)]
Rebase hunger values at 0 (from 100).

Also, get rid of a number (but not all) literal values, replacing them with

No compensation is given for proportional costs (Zin's wrath, hungry ghost

4 years agoAllow +Rage, *RAGE, -TELE and Contam on faerie dragon armour.
Adam Borowski [Sat, 26 Oct 2013 23:51:10 +0000 (01:51 +0200)]
Allow +Rage, *RAGE, -TELE and Contam on faerie dragon armour.

Also, make the enchantment more random.

4 years agoDon't crash when using ETC_WAVES outside of Shoals.
Neil Moore [Sat, 26 Oct 2013 22:24:46 +0000 (18:24 -0400)]
Don't crash when using ETC_WAVES outside of Shoals.

It could happen if there's a redraw in the middle of leaving shoals,
after the heightmap is reset but before tile flavours have been
reinitialised.  This commit doesn't fix that problem, but there are
other cases as well (such as a player giving something the "waves"

4 years agoReundeadify vampires on game load (#7668)
Neil Moore [Sat, 26 Oct 2013 22:04:22 +0000 (18:04 -0400)]
Reundeadify vampires on game load (#7668)

4 years agoDon't enliven vampires when leaving lich form (#7668).
Neil Moore [Sat, 26 Oct 2013 21:48:40 +0000 (17:48 -0400)]
Don't enliven vampires when leaving lich form (#7668).

It could happen through chaos brand, metamorphosis card, etc.

4 years agoFix cygwin (and maybe other) rltiles tool builds.
Neil Moore [Sat, 26 Oct 2013 21:39:15 +0000 (17:39 -0400)]
Fix cygwin (and maybe other) rltiles tool builds.

0.14-a0-211-g2268ef7 removed the #include <stdio.h> in tile.h, but
left the use of FILE in tile_list_processor.h.

4 years agoSimplify.
Neil Moore [Sat, 26 Oct 2013 21:36:31 +0000 (17:36 -0400)]

4 years agoDon't deal Awaken Forest damage to sanctuaried players (#7669)
Chris Campbell [Sat, 26 Oct 2013 19:02:54 +0000 (20:02 +0100)]
Don't deal Awaken Forest damage to sanctuaried players (#7669)

4 years agoMake Xom's draining effect only drain once
Chris Campbell [Sat, 26 Oct 2013 16:14:50 +0000 (17:14 +0100)]
Make Xom's draining effect only drain once

4 years agoAssert that the player has hp > 0 when saving.
Adam Borowski [Sat, 26 Oct 2013 12:52:37 +0000 (14:52 +0200)]
Assert that the player has hp > 0 when saving.

To save a separate flag, I reused the value of 0 for felid you.dead, and
it turns out non-felids will get revived upon restoring from such a buggy
save.  I've seen this twice during stress testing already, but sadly such
saves are found only during restore, and thus provide no clue what could
be going wrong.

So I'm adding this assert and in a couple weeks I may get a reproducer.

4 years agoMinor adjustments to two of the abyss entries.
Steve Melenchuk [Sat, 26 Oct 2013 03:38:30 +0000 (21:38 -0600)]
Minor adjustments to two of the abyss entries.

_glasseish always gets transpara-stone (to make it difficult for deep
troll earth mages to release the contents), and _flame_altar guarantees
an entry that doesn't go through one of the flame clouds.

4 years agoTypo fixes.
Adam Borowski [Sat, 26 Oct 2013 03:23:14 +0000 (05:23 +0200)]
Typo fixes.

4 years agoRewrite (x*y)/z as x*y/z
Adam Borowski [Sat, 26 Oct 2013 03:14:23 +0000 (05:14 +0200)]
Rewrite (x*y)/z as x*y/z

Also, simplify an expression such removal of parentheses revealed.

4 years agoA bunch of decorative abyss entry vaults.
Adam Borowski [Sat, 26 Oct 2013 02:59:25 +0000 (04:59 +0200)]
A bunch of decorative abyss entry vaults.

4 years agoHandle messages for exploding projectiles at walls / edge of LOS properly.
Steve Melenchuk [Sat, 26 Oct 2013 01:19:47 +0000 (19:19 -0600)]
Handle messages for exploding projectiles at walls / edge of LOS properly.

Previously you could fire explosions to the edge of LOS and have the
game think you'd only heard them, not seen them.

4 years agoDon't give malformed messages for invis abyss spawns (#7664)
Neil Moore [Sat, 26 Oct 2013 00:50:33 +0000 (20:50 -0400)]
Don't give malformed messages for invis abyss spawns (#7664)

In fact, don't give any message at all.

4 years agoChangelog through 0.14-a0-385-gada9c99.
Steve Melenchuk [Sat, 26 Oct 2013 00:46:54 +0000 (18:46 -0600)]
Changelog through 0.14-a0-385-gada9c99.

Usual "I may have missed something" disclaimer applies.

4 years agoHellfire-the-unrand gains a "hellfire brand".
Steve Melenchuk [Fri, 25 Oct 2013 02:59:28 +0000 (20:59 -0600)]
Hellfire-the-unrand gains a "hellfire brand".

Bolts fired from it inflict hellfire-flavoured damage and explode in a
manner similar to other exploding projectiles (but also with
hellfire-flavoured damage) - this of course means bolts fired from it
have a 100% mulch rate.

Its base damage enchantment is now +6; +9 is probably too overpowered,
but lowering it all the way to +0 might be considered too much of a
drawback in light of the mulch rate and the fact that rHellfire enemies,
well, completely resist damage from Hellfire. (Who would have thought?)

It's also now evil! (What the hellfire!?)

4 years agoSpruce up abyss entries (incl. #6921).
Steve Melenchuk [Fri, 25 Oct 2013 23:48:10 +0000 (17:48 -0600)]
Spruce up abyss entries (incl. #6921).

This is one vault appropriation and one vault from Mantis, as well as
the functionality seen in f07e438 applied to Abyss entries.

I'll probably work on some more of these in the near future.

4 years agoRemove now-unnecessary no_rtele_into from a vault
Chris Campbell [Fri, 25 Oct 2013 23:07:16 +0000 (00:07 +0100)]
Remove now-unnecessary no_rtele_into from a vault

4 years agoMake some portal vaults easier to enter
Chris Campbell [Fri, 25 Oct 2013 23:02:47 +0000 (00:02 +0100)]
Make some portal vaults easier to enter

Don't block off bailey_axe_3 with water, always generate some source of
flight in bailey_axe_4, always generate a path to the portal in

4 years agoSpruce up Hell and Pan entries.
Steve Melenchuk [Fri, 25 Oct 2013 22:56:19 +0000 (16:56 -0600)]
Spruce up Hell and Pan entries.

Instead of placing a plain portal 100% of the time, this uses some of
the available (mini-)vaults as portals where available (except with
encompass vaults, where it leverages the nolayout_encompass
functionality introduced with the two previous commits to only try to
place the bare portal).

I appropriated two vaults from elsewhere for use as Hell entries
grunt_hell_entry_demonic_statue (with some popcorn removed) and

Currently Abyss doesn't do this because we don't really have any vaults
that function primarily as Abyss entries. (At time of writing I found
one appropriate vault to use; there's also one on Mantis that I might
consider using if it gets fixed up a bit.)

4 years agoConsider encompass vaults to have a "layout_type_encompass".
Steve Melenchuk [Fri, 25 Oct 2013 22:55:19 +0000 (16:55 -0600)]
Consider encompass vaults to have a "layout_type_encompass".

With the previous commit, this lets vaults be tagged with
"nolayout_encompass" to prohibit them from attempting to be placed on
encompass vaults.

I can see this having application with, say, serial vaults and portal
vaults, but right now it isn't used for anything.

4 years agoAllow vaults to have "nolayout_" tags.
Steve Melenchuk [Fri, 25 Oct 2013 22:54:13 +0000 (16:54 -0600)]
Allow vaults to have "nolayout_" tags.

This functionality prohibits vaults from placing on specific layout
types. It's meant to be mutually exclusive with layout_ tags, but
there's nothing stopping you from having both on one vault (I don't
expect consistent behaviour from this, though).

4 years agoFix portal vault chance tagging.
Steve Melenchuk [Fri, 25 Oct 2013 22:49:22 +0000 (16:49 -0600)]
Fix portal vault chance tagging.

dgn.chance takes an absolute chance number, not a string.

This was causing portal vaults to be depth-placed and thus not show up
nearly as often as they should.

4 years agoDon't freeze fsim on spurious ranged combat prompts.
Steve Melenchuk [Wed, 23 Oct 2013 20:07:15 +0000 (14:07 -0600)]
Don't freeze fsim on spurious ranged combat prompts.

Such as the ones caused by some of the proposed unrand changes.

4 years agoProperly handle ranged unrands affecting their ammo.
Steve Melenchuk [Fri, 25 Oct 2013 02:27:42 +0000 (20:27 -0600)]
Properly handle ranged unrands affecting their ammo.

Previously this functionality didn't operate at all; it should now
be able to work as expected.

4 years agoTag the noncrumbling statue vaults as extra.
Steve Melenchuk [Fri, 25 Oct 2013 15:32:41 +0000 (09:32 -0600)]
Tag the noncrumbling statue vaults as extra.

This is the case for everything else in the section, and I don't see the
harm in disallowing these in particular from taking the full minivault

4 years agoGreatly reduce hunger of trolls of Chei.
Adam Borowski [Fri, 25 Oct 2013 14:46:07 +0000 (16:46 +0200)]
Greatly reduce hunger of trolls of Chei.

This reduction applies to everyone, but with unmodified metabolism, only
trolls are affected:
   base | chei
     1  |   1 (spriggan)
     2  |   1 (halfling, felid, gargoyle)
     3  |   2 (most races)
     4  |   3 (centaur, ogre)
     5  |   3
     6  |   4
     7  |   5
     8  |   6
     9  |   6 (troll) used to be 8