3 months agoImprove net traps
Nicholas Feinberg [Wed, 25 Nov 2020 02:37:53 +0000]
Improve net traps

Prior to this commit, net traps would fire exactly once, launching a
net that the player could use. After this, they'd be destroyed. This
encouraged the player to intentionally and methodically step on net
traps to 'disarm' them and to get net traps for their own use. Not
particularly interesting or fun gameplay!

Instead, make net traps permanent, and make their nets always mulch.
This will make life a bit harder for players in some places (Zot,
Tomb), but we can always adjust trap frequency as appropriate.

3 months agoRework player spell accuracy display
Nicholas Feinberg [Wed, 25 Nov 2020 01:47:06 +0000]
Rework player spell accuracy display

It didn't work - the approximation was too crude. We pretended we
were only rolling a random number once (for to-hit), but we actually
rolled target EV 3 times as well - and more rolls if the target had

We now try to simulate most of that (though not rMsl). It seems like
even in the worst likely cases (high-accuracy spells against a haloed
high-EV target), we only run about 150k iterations, which is very fast
locally. This produces much more accurate results.

The correct solution is to simplify the beam accuracy calculations,
as we have with melee/ranged attack accuracy, but that's a larger
task than I want to attempt this close to feature freeze.

3 months agoRename greater mummies to royal mummies (gressup)
Nicholas Feinberg [Wed, 25 Nov 2020 02:14:49 +0000]
Rename greater mummies to royal mummies (gressup)

The great crusade against greatness continues. 'Greater' is a pretty
vague and generic descriptor when the existing lore (the monster description)
already calls these terrifying creatures 'ancient pharoahs'. It's also
annoyingly close to the name of 'guardian mummies', which shows up in
the same place! Let's differentiate a bit.

You may call these "mummyrajas" if you prefer.

3 months agoDon't show the zot clock in Abyss
Nicholas Feinberg [Wed, 25 Nov 2020 02:03:06 +0000]
Don't show the zot clock in Abyss

Or on the orb run or wherever else it might be disabled, even if
always_show_zot is on.

3 months agoFix for hep games that get soft-locked in abyss
advil [Tue, 24 Nov 2020 18:00:24 +0000]
Fix for hep games that get soft-locked in abyss

Under some poorly understood circumstances, hep ancestors can drop
weapons in the abyss, and when they do, sometimes (???) these items can
form a stack. The former just causes annoying errors, but the latter
will trigger a crash any time `abyss_morph` is triggered. With
relatively deterministic rng these days, that will soft-lock the game in
the abyss; I think in the past when this happened you could just reload
and end up with a different rng state by doing some stuff in the ui, and
then if you were lucky the crash wouldn't replicate).

This commit fixes the symptoms by clearing the buggy items during
abyss_morph. More crashlogs won't really help at this point, there are
plenty and still no one has figured out how to replicate this crash.

3 months agoAdd a killer klown kast message (zipskins)
Nicholas Feinberg [Tue, 24 Nov 2020 01:14:34 +0000]
Add a killer klown kast message (zipskins)

3 months agoDescribe marshlight in monster (vt)
Nicholas Feinberg [Tue, 24 Nov 2020 01:10:55 +0000]
Describe marshlight in monster (vt)

3 months agoDon't claim fireballs can miss (lici)
Nicholas Feinberg [Tue, 24 Nov 2020 01:06:58 +0000]
Don't claim fireballs can miss (lici)

3 months agoRemove an unused function
Nicholas Feinberg [Tue, 24 Nov 2020 01:04:51 +0000]
Remove an unused function

3 months agoShow spell to-hit % in the targeter
Nicholas Feinberg [Sat, 21 Nov 2020 21:40:51 +0000]
Show spell to-hit % in the targeter

This is a fairly crude approximation, but I think it should be
relatively correct. It's nice to have a basic sense of how likely
you are to hit, for both players and devs - balance is a lot harder
without real accuracy numbers!

3 months agoMake lighting affects beams more like attacks
Nicholas Feinberg [Sat, 21 Nov 2020 21:24:24 +0000]
Make lighting affects beams more like attacks

Lighting effects (accuracy bonuses from haloes and penalties from
umbrae) were applied before the to-hit roll for beams and before the
roll for melee & ranged attacks, meaning that they had roughly half
the effect on beams that they did on attacks. This doubles their
effect on beams to be more consistent with attacks. Players will see
better results with wands and spells under TSO and worse results
trying to hit anything near a profane servitor with spells.

3 months agoHalve distortion banish weight (hellmonk)
Nicholas Feinberg [Sat, 21 Nov 2020 01:15:20 +0000]
Halve distortion banish weight (hellmonk)

From 14964f1db53dd4 :

    ...if the new distortion becomes too strong with a 10% banish
    these numbers can be further adjusted.

3 months agoRemove invocation removal
advil [Fri, 20 Nov 2020 21:22:17 +0000]
Remove invocation removal

on switching gods. Also remove some vestigial code.

3 months agoReplace tloc -Tele with -Move
Nicholas Feinberg [Fri, 20 Nov 2020 05:40:35 +0000]
Replace tloc -Tele with -Move

-Tele was a cute downside for translocation spells, which are often
about escape. However, it was sometimes quite advantageous: players
faced with an undesirable teleport trap could memorize a tloc spell
and miscast it to pass through. Funny, but not very entertaining

So, replace -Tele with -Move, completely preventing the player from
moving (ala treeform + dimensional anchor) for a short period.
Seems much more commonly relevant, and significantly less likely to
encourage boring play patterns.

3 months agoIncrease marshlight cast frequency
Nicholas Feinberg [Thu, 19 Nov 2020 16:13:57 +0000]
Increase marshlight cast frequency

Since it's really the only thing will-o-the-wisps do, they can afford
to cast their spell closer to 1/4 times instead of 1/6.

3 months agoSlow goliath frogs down a bit
Nicholas Feinberg [Thu, 19 Nov 2020 16:12:21 +0000]
Slow goliath frogs down a bit

They've been consistently more lethal than intended. Going from
speed 14 to speed 12 should reduce damage & corrosion, as wel as
giving players more ways to escape their terrifying anuran wrath.

3 months agoFix spriggan druids not casting Awaken Forest (Lici)
gammafunk [Thu, 19 Nov 2020 11:55:16 +0000]
Fix spriggan druids not casting Awaken Forest (Lici)

Broken in c03f2b59, the original logic inverted in that batch of fixes
was in fact correct. Spriggan druids had the spell, but would never try
to cast it before this fix.

3 months agoReword the demigod description (monkeytor)
advil [Thu, 19 Nov 2020 01:20:25 +0000]
Reword the demigod description (monkeytor)

wow, yeah.

3 months agoFix some problems in a vault
gammafunk [Wed, 18 Nov 2020 15:00:28 +0000]
Fix some problems in a vault

The newly introduced gammafunk_indiana_jones was fairly spoilery, since
you couldn't see much into the vault. Vaults that don't fully reveal
their contents to the outside will always have some amount of spoilers,
but this vault didn't telegraph what the player would face, which
includes Zot traps at later depths. Allow peering well into the vault
from outside the runed door by turning some strategically chosen walls
into floor (or possibly Zot traps at the right depth).

Additionally the internal layout was very closed, making it very easy to
fighting the first wave of monsters 1v1. Add some randomized floor to
the switchback walls. Also turn the last door into a clear one so the
player can see the full contents of the treasure room before deciding to
fight any boulder beetles. Finally, use an inner wall of rock that we
can decorate with thematic wall tiles, behind which we use stone to
prevent easy digging. Also use decorative floor tiles to match the

3 months agoTurn monster explosions into fineffs
Nicholas Feinberg [Wed, 18 Nov 2020 06:30:26 +0000]
Turn monster explosions into fineffs

Explosions firing immediately causes a pretty classic set of issues -
we're invalidating the old state of the world in surprising ways. For
example, if a ball lightning explodes and kills an attacker midway
through the resolution of a multi-target attack (e.g. a javelin toss),
the game just has no way to figure out how to resolve the rest of the
attack afterward - it can't generate new ranged_attacks without the
original attacker, so it just crashes.

Instead, let's wait until the *end* of any ongoing melee attacks or
beams before triggering death explosions. The timing here is slightly
different for attack-triggered fineffs - we trigger them a little later
now melee attacks, in - but hopefully that's ok.

Overall, this code is very bad and probably buggy. I'm sorry.

3 months agoConstify torment_player agent
Nicholas Feinberg [Wed, 18 Nov 2020 05:17:57 +0000]
Constify torment_player agent

3 months agoConstify petrify agent
Nicholas Feinberg [Wed, 18 Nov 2020 05:16:51 +0000]
Constify petrify agent

3 months agoConstify banish agent
Nicholas Feinberg [Wed, 18 Nov 2020 05:16:10 +0000]
Constify banish agent

3 months agoConstify paralyse agent
Nicholas Feinberg [Wed, 18 Nov 2020 05:13:28 +0000]
Constify paralyse agent

3 months agoRemove unused params
Nicholas Feinberg [Wed, 18 Nov 2020 05:02:15 +0000]
Remove unused params

3 months agoConstify drain_exp agent
Nicholas Feinberg [Wed, 18 Nov 2020 04:58:17 +0000]
Constify drain_exp agent

3 months agoAdd rolling charge ability icon
Nicholas Feinberg [Tue, 17 Nov 2020 16:34:27 +0000]
Add rolling charge ability icon

3 months agoMake boulder beetles jumpier (yesno)
Nicholas Feinberg [Tue, 17 Nov 2020 16:06:29 +0000]
Make boulder beetles jumpier (yesno)

Better messaging and cloud sfx, matching the intended flavour.

3 months agoPartially fix skill menu (dinky)
Nicholas Feinberg [Mon, 16 Nov 2020 16:25:12 +0000]
Partially fix skill menu (dinky)

Still a little strange when useless skills are de-focused, but OK.

3 months agoRemove skill training restrictions (hellmonk)
Nicholas Feinberg [Mon, 16 Nov 2020 06:00:17 +0000]
Remove skill training restrictions (hellmonk)

After the old XP pool system was removed and the current skill training
system was added, one odd edge case was that you had to have an item, spell,
or god ability somehow relevant to a skill to be able to train it. This was
not particularly consistent. For example, training got special-cased to be
always allowed to avoid annoyance when you'd thrown everything you had, and
pain brand, though depending on necromancy, did not allow you to train it.

In general, it's better to have less complexity and fewer special cases, so
by default it seems good to remove these rather complex restrictions. The
argument against has been that training these skills is rarely useful (true,
but so are many things players do!), and that a massive skill screen would
intimidate new players. Thankfully, to avoid the latter case, we can retain
much of the old code to hide many skills by default, while still allowing
experienced players to use them, in the same way that they can use manual
training instead of automatic. In fact, since we no longer need to special
case Throwing, new players will often see a smaller skill screen than before!

3 months agoTweaks to
Kyle Rawlins [Sun, 15 Nov 2020 17:09:00 +0000]
Tweaks to

This is shown in game, so needs to look reasonable as text. Adjust the
headers and a few other details.  It still uses a bit too much
formatting for this, so it would be ideal if we had a way of stripping
out the md and generated a .txt.

Also, remove food, and a few other minor wording tweaks.

3 months agoReorder a Makefile rule for backwards compatibility
advil [Sun, 15 Nov 2020 14:43:47 +0000]
Reorder a Makefile rule for backwards compatibility

Prior to gnu make 3.82, when there were multiple pattern matches, the
earlier rule was preferred, so the .h.o rule needs to precede the
regular .o rule for these versions.

3 months agoClean up plants in post-placement fills (Lightli)
advil [Sun, 15 Nov 2020 02:18:31 +0000]
Clean up plants in post-placement fills (Lightli)

Regular monsters (and items) shouldn't appear outside of vaults at this
point in the level generation process, but plants are entirely possible
in some layouts. This commit allows plants to be cleaned up, and
prevents post-placement filling of squares with non-firewood. (The fill
code itself will wipe out anything, beware.)

3 months agolint
advil [Sat, 14 Nov 2020 20:33:47 +0000]

3 months agoImprovements to placement.lua
advil [Sat, 14 Nov 2020 20:20:56 +0000]
Improvements to placement.lua

Main change: allow outputting the builder log along with the map. Other
tweaks to documentation and comments.

3 months agoMark des_cache_test as unrand
advil [Sat, 14 Nov 2020 20:16:02 +0000]
Mark des_cache_test as unrand

It already can't place in at least two ways, but this further cements

3 months agoFix a typo in chequers_temple_overflow_minitemple
advil [Sat, 14 Nov 2020 20:07:47 +0000]
Fix a typo in chequers_temple_overflow_minitemple

3 months agoInitialize a variable
advil [Sat, 14 Nov 2020 19:39:58 +0000]
Initialize a variable

May or may not avoid crashes that I can't replicate.

3 months agoAdd more doc comments to placement.lua
advil [Sat, 14 Nov 2020 18:18:19 +0000]
Add more doc comments to placement.lua

Since in 06017ff571 I messed up the pasting of the example output, I
thought it might be useful to duplicate this text in comments on the
script itself, with the correct output.

3 months agoLarge batch of connectivity / placement fixes
advil [Sat, 14 Nov 2020 15:27:43 +0000]
Large batch of connectivity / placement fixes

These fall into three categories:
1. Fixes that are oriented towards getting automated testing to pass.
  - e.g. cleanups around CLEAR tiles that may be non-issues in practice;
    example: for compass oriented vaults I've added explicit wall tiles
    in the appropriate direction so that the vault is not making
    assumptions about the underlying tiles.
  - clarifying `unrand` tags for pure subvaults where needed (in some
    cases these relied on lack of depth marking to not place). Added the
    `removed` tag for a few special cases.
  - lua fixes that cleaned up background assumptions

2. Genuine fixes for many vaults. Examples:
  - actual CLEAR issues were relatively common: these can cause a veto
    if the vault overlays in a way that puts a floor tile under this
    kind of position.
  - varied closets, often involving water, often only under some
    circumstances. Fix some KMASK mistakes where the writer probably was
    assuming it applied immediately.
  - Some cleanups for opaque masking / transparency. This script isn't
    really geared towards testing fully opaque vaults, but it is good at
    finding incorrectly done opaque masking on transparent vaults.
    (However, there are a bunch of transparency fixes from veto testing
    that are rolled into here that I should have committed first.)

3. Comments for a few vaults that I didn't fix. (See also the force
   overrides in placement.lua.)

3 months agoTweaks to minmay_the_grid for occasional closets
advil [Sat, 14 Nov 2020 15:12:14 +0000]
Tweaks to minmay_the_grid for occasional closets

These closets are of the veto-triggering kind, not the tele closet kind.
I'm not very confident that these are the ultimately best fixes, but
they are fixes. They target an issue with a specific style of subvault
that relied on the surrounding tiles for connectivity: these subvaults
assume external passable squares that lined up with the internal gaps,
but it's possible for those external squares to become walls, leading to

Otherwise I've done a lot of bulk testing of minmay_the_grid vaults, and
haven't found other connectivity issues. (Right now my script can't
place the ultimate one, though, so that could use some followup.)

3 months agoAdd a script for automated placement and connectivity testing
advil [Sat, 14 Nov 2020 14:54:31 +0000]
Add a script for automated placement and connectivity testing

This repurposes an ancient, and dormant, test that placed a single vault
and adds a bunch of features to make it useful for bulk testing vaults,
targeting basic placement issues and connectivity. This is extremely
useful for finding rare connectivity issues, and for doing a pass
through all vaults to find obvious veto-triggering closets.
Unfortunately I suspect it takes to long to be viable as a CI test
(though I may still try this out), and is better interactively. Initial
fixes as a result of developing this script will come in separate
commits. Use case:

$ util/fake_pty ./crawl -script placement.lua minmay_nonomino_d4 -count 10 -dump
Testing map 'minmay_nonomino_d4'
    Failing vault output to: placement-minmay_nonomino_d4.10.txt
script error: ./scripts/placement.lua:184: Isolated area in vault minmay_nonomino_d4 (2 zones)

This generates this vault on a blank level 10 times and outputs each map
to a file. In this case, it failed on try 10 (which aborts) and so it
stops then and points out the specific failing file to you. This file
shows the whole level, but here's an excerpt illustrating the vault


In this case the problem is pretty visible, though sometimes
connectivity issues do not pop out in the test output (e.g. ones
involving water, or CLEAR tiles, etc.) and need further debugging.

Currently this script is geared towards finding isolated areas that will
trigger vetoes, though it might be extendable to do other related
things that it doesn't know (e.g. find tele closets in opaque maps).

The script skips various kinds of maps, and is hard-coded to skip
certain specific maps that either are ones I haven't yet figured out how
to solve, or illustrate some other unusual circumstance that can't be
detected from tags. The two biggest skipped categories are encompass
maps, and unrand maps. The latter are usually pure subvaults, so testing
the map that places them exercises them. (Though in practice, you need
to manually test these vaults with large -count arguments. I've done
this in a few cases, e.g. minmay_the_grid maps, but not generally.)

3 months agoUpdate explorer.lua for temple pregen change
advil [Tue, 10 Nov 2020 01:04:57 +0000]
Update explorer.lua for temple pregen change

3 months agoSkip input on tiles loading screen in test mode
advil [Mon, 9 Nov 2020 14:13:51 +0000]
Skip input on tiles loading screen in test mode

Possibly should be skipped for other cases too.

3 months agoSplit out mon-explode explode
Nicholas Feinberg [Sat, 14 Nov 2020 04:45:04 +0000]
Split out mon-explode

It makes sense to me, and also it's a very funny name.

3 months agoLet palentonga mutate to roll farther (dinky)
Nicholas Feinberg [Sat, 14 Nov 2020 05:05:33 +0000]
Let palentonga mutate to roll farther (dinky)

Seems fun. Damage is still capped at 2x, since getting even more
damage seems excessive.

3 months agoRemove dead code
Nicholas Feinberg [Sat, 14 Nov 2020 04:16:33 +0000]
Remove dead code

3 months agoRevert "Revert "Don't crash in the skills menu (advil)""
Nicholas Feinberg [Sat, 14 Nov 2020 03:04:58 +0000]
Revert "Revert "Don't crash in the skills menu (advil)""

This reverts commit 3d2bcdb4e9ce18204ec63b67a5d23613e6c4f2db.

3 months agoRevert "Don't crash in the skills menu (advil)"
Nicholas Feinberg [Sat, 14 Nov 2020 02:31:19 +0000]
Revert "Don't crash in the skills menu (advil)"

Caused a different crash that I don't understand.

This reverts commit e0c665c49dfa321371ae9ab94611a89d5c067a8e.

3 months agoStop forcing Swamp
Nicholas Feinberg [Sat, 14 Nov 2020 01:59:00 +0000]
Stop forcing Swamp

We've gotten a few weeks of guaranteed Swamp testing and it seems to
be in decent shape (if perhaps slightly too froggy and slightly not
wispy enough), so let's set things back to normal.

3 months agoDon't crash in the skills menu (advil) xp_pool
Nicholas Feinberg [Fri, 13 Nov 2020 17:23:25 +0000]
Don't crash in the skills menu (advil)

I'm not confident in this use of save_game, but maybe it's OK?

3 months agoDescribe chain lightning damage in xv
Nicholas Feinberg [Thu, 12 Nov 2020 15:54:14 +0000]
Describe chain lightning damage in xv

3 months agoFix monster
Nicholas Feinberg [Thu, 12 Nov 2020 15:53:37 +0000]
Fix monster

3 months agoShow IOOD damage in xv
Nicholas Feinberg [Thu, 12 Nov 2020 02:26:14 +0000]
Show IOOD damage in xv

3 months agoDon't print hex %s in black on black
Nicholas Feinberg [Thu, 12 Nov 2020 02:25:56 +0000]
Don't print hex %s in black on black

3 months agoColourize beam damage descriptions
Nicholas Feinberg [Wed, 11 Nov 2020 21:50:15 +0000]
Colourize beam damage descriptions

This is fairly useless but looks cool.

3 months agoDisplay marshlight damage in xv
Nicholas Feinberg [Wed, 11 Nov 2020 21:08:05 +0000]
Display marshlight damage in xv

3 months agoMake wall-border dig behaviour consistent (12380)
Nicholas Feinberg [Wed, 11 Nov 2020 20:44:53 +0000]
Make wall-border dig behaviour consistent (12380)

Honestly not sure whether it makes more sense to stop digging or keep
going, but it looks like more thought was put into the behaviour for
non-border non-diggable walls (which causes the player to stop digging),
so let's do that.

3 months agoZappify natural spells
Nicholas Feinberg [Wed, 11 Nov 2020 18:16:58 +0000]
Zappify natural spells

At least, we can see Xtahua's magnificent damage in the wild.

3 months agoZappify more monster beams
Nicholas Feinberg [Wed, 11 Nov 2020 16:59:56 +0000]
Zappify more monster beams

3 months agoDisplay waterstrike damage on xv
Nicholas Feinberg [Wed, 11 Nov 2020 16:24:52 +0000]
Display waterstrike damage on xv

3 months agoDeduplicate monster explosion methods
Nicholas Feinberg [Wed, 11 Nov 2020 16:07:06 +0000]
Deduplicate monster explosion methods

3 months agoRefactor monster explosions a bit
Nicholas Feinberg [Wed, 11 Nov 2020 16:03:20 +0000]
Refactor monster explosions a bit

3 months agodocs: Document artp_value_type
CrawlCycle [Tue, 20 Oct 2020 00:34:21 +0000]
docs: Document artp_value_type

This commit documents artp_value_type, which is an enum
for defining the type of a value of an artefact property.

3 months agodocs: Document invalidate_agrid (#1588)
CrawlCycle [Tue, 10 Nov 2020 17:44:05 +0000]
docs: Document invalidate_agrid (#1588)

* docs: Document invalidate_agrid

The invalidate_agrid function invaldiates the area effect
cache. The function has about 40 usages in the codebase.
This commit adds doxygen comments to explain its effect.

* docs: Revise docs as suggested by Pleasing Fungus

Co-authored-by: CrawlCycle <>

3 months agoRename the "center_on_scroll" option as "centre_on_scroll", but let the
Kieron Dunbar [Wed, 21 Oct 2020 20:34:35 +0000]
Rename the "center_on_scroll" option as "centre_on_scroll", but let the
user use either spelling.

various functions:
Rename the "center_on_scroll" option as "centre_on_scroll".

Add "center_on_scroll := centre_on_scroll" as an alias, so that either
version is accepted by the game.

I added this in two places because the game clears the alias list three
times while loading a saved game.
1. before reading start-ns.prf
2. before reading -extra-opts-first options.
3. before reading the settings file.
start-ns.prf should not contain centre_on_scroll, but the others may do.

3 months agoChange the spelling of some words to Australian English.
Kieron Dunbar [Wed, 21 Oct 2020 20:21:28 +0000]
Change the spelling of some words to Australian English.

This changes a few words which are either displayed by the game, or are
in documentation for it. I haven't changed the changelog, however, or
anything in source/contrib.

The words I've changed are:

Canceled -> Cancelled (
center -> centre (arena.txt options_guide.txt)
centered -> centred (options_guide.txt)
centers -> centres (options_guide.txt)
Cudgeler -> Cudgeller (
labeled -> labelled (
reveler -> reveller (
Reveler -> Reveller (features.txt, godname.txt, gods.txt)
traveled -> travelled (

3 months agoMention zot clock in E (nikheizen)
Nicholas Feinberg [Tue, 10 Nov 2020 17:09:46 +0000]
Mention zot clock in E (nikheizen)

3 months agoPartially unify mons explosion logic
Nicholas Feinberg [Tue, 10 Nov 2020 17:02:43 +0000]
Partially unify mons explosion logic

This should really be unified with mons-death::_explode_monster
as well.

3 months agoTurn more monster spells into zaps
Nicholas Feinberg [Tue, 10 Nov 2020 16:38:59 +0000]
Turn more monster spells into zaps

So that they show up in xv. (Still many left to do...)

3 months agoFix the path for
wheals [Tue, 10 Nov 2020 17:04:18 +0000]
Fix the path for

[closes #1599]

3 months agoRe-wrap to 80 columns
wheals [Tue, 10 Nov 2020 17:03:56 +0000]
Re-wrap to 80 columns

3 months agoUpdate
Sebastian Łużyński [Tue, 27 Oct 2020 09:55:48 +0000]

3 months agoUpdate
Sebastian Łużyński [Tue, 27 Oct 2020 09:54:24 +0000]

3 months agoUpdate and rename quickstart.txt to
Sebastian Łużyński [Tue, 27 Oct 2020 09:52:03 +0000]
Update and rename quickstart.txt to

Just because this doc has been made long time ago, doesn't mean it has to be rudimentary :D

3 months agoProperly Punctuate small damage distortion
Midn8 [Tue, 10 Nov 2020 05:12:21 +0000]
Properly Punctuate small damage distortion

I don't even know how long this was broken, has had a comment claiming that it was fine since disto can't do more than 7 damage, but 7 damage is one ! already. Ideally someone will also fix harm to work properly with attack_strength_punctuation, but that's above my pay grade.

[dev note: properly punctuated code --wheals]

3 months agoMake an obvious removal
Nicholas Feinberg [Tue, 10 Nov 2020 04:40:27 +0000]
Make an obvious removal

This field was used to determine whether enchantments should print
'nothing happened', but it was always false for enchantments.
It did nothing.

3 months agoMake !attraction ignore friends
Nicholas Feinberg [Tue, 10 Nov 2020 01:21:55 +0000]
Make !attraction ignore friends

Pulling friends in spams messages when following an ally god (e.g.
Yred) and doesn't really do much interesting, either helpfully or

I haven't changed the duration start/end messages because I enjoy
them, though maybe I should.

3 months agoAccept that Swamp and Shoals can coexist (#1606)
Nicholas Feinberg [Tue, 10 Nov 2020 01:19:32 +0000]
Accept that Swamp and Shoals can coexist (#1606)

For now, at least!

3 months agoMake witches less prehensile (RandomCharacter)
Nicholas Feinberg [Mon, 9 Nov 2020 17:48:42 +0000]
Make witches less prehensile (RandomCharacter)

3 months agoIWYU part 3
Aidan Holm [Mon, 26 Oct 2020 14:17:55 +0000]
IWYU part 3

3 months agoEven more IWYU
Aidan Holm [Mon, 26 Oct 2020 13:44:17 +0000]
Even more IWYU

3 months agoMore IWYU and header dependency cycle breaking
Aidan Holm [Mon, 26 Oct 2020 13:15:02 +0000]
More IWYU and header dependency cycle breaking

The primary intent of this commit was to remove options.h from the
dependencies of beam.h, since it was only ever used to set a single
struct field's default value. That can be done perfectly well with a
constructor in a cc file.

Of course, removing options.h from beam.h broke all kinds of other
things that had come to depend on options.h being included from their
dependencies, or, to be precise, on *dependencies* of options.h (mostly
mpr.h in practice). What a mess.

This change also adds five more headers to the set of headers that are
buildable: i.e. they (transitively) include all their own dependencies.

3 months agoRemove dead code (#12379)
Aidan Holm [Mon, 9 Nov 2020 11:54:20 +0000]
Remove dead code (#12379)

3 months agoZap Duvessa if Dowan gets zapped and vice-versa (Lightli)
wheals [Mon, 9 Nov 2020 10:15:57 +0000]
Zap Duvessa if Dowan gets zapped and vice-versa (Lightli)

Plus let them generate again later.

3 months agoRevamp a Shoals ghost vault
gammafunk [Mon, 9 Nov 2020 05:08:42 +0000]
Revamp a Shoals ghost vault

The vault ebering_ghost_davey_jones places a kraken (or two derived
undead krakens) and a ghost, but it's trivial to separate the
ghost-kraken alliance. Even with these two monsters together, the vault
would be pretty easy. This commit revamps the vault to have a
transporter, adds some extra critters, and reworks the themeing.  Now
only one kraken is ever placed, either normal or spectral, and there are
accompanying monsters that match the normal/spectral themes.

We now have deep sea creatures that an unfortunate seagoer who ended up
in Davey Jones' locker might find, such as sea snakes, snapping turtles,
and, rarely alligator snapping turtles (we'll pretend the turtles are
sea turtles). There's also a merfolk with a nice weapon and a monster
band. For the natural theme, this is an aquamancer and water elementals.
For the spectral theme, this is a merfolk impaler where the impaler and
its band all have draining weapons. The critters for the spectral theme
are spectral versions of their natural counterparts.

The loot has been somewhat buffed, and the internal layout is now
symmetrical, but with some added walls that have a couple pattern
variants. This new version of the vault should be nasty enough to get a
few kills while hopefully offering some enticing rewards.

3 months agoAdjust Trog-themed gifts in a ghost vault
gammafunk [Mon, 9 Nov 2020 05:07:28 +0000]
Adjust Trog-themed gifts in a ghost vault

For gammafunk_ghost_wrathful_warriors, adjust the egos of the fancy
monster weapon to be antimagic, flaming, and vorpal, the only three egos
that Trog currently uses for weapon gifts.

3 months agoCheckwhite
Nicholas Feinberg [Mon, 9 Nov 2020 04:19:00 +0000]

3 months agoShow monster spell damage on xv in WebTiles
Nikolai Lavsky [Sun, 8 Nov 2020 19:03:39 +0000]
Show monster spell damage on xv in WebTiles

Commit 9d7e6eef added this functionality to console and Local Tiles.
Also, since _effect_string() already returns a hex chance, deduplicate
some code.

3 months agoFix some missed .s
advil [Sun, 8 Nov 2020 22:20:27 +0000]
Fix some missed .s

These don't matter for connectivity, but might confuse someone
eventually if left.

3 months agoMore transparency fixes
advil [Sun, 8 Nov 2020 21:09:58 +0000]
More transparency fixes

This includes a complete pass over large_themed_abstract.des, providing
explicit opacity masking for a bunch of these vaults.

3 months agoIncrease Hydra Form duration (Lici)
Nicholas Feinberg [Sun, 8 Nov 2020 15:58:44 +0000]
Increase Hydra Form duration (Lici)

The low duration was meant to make spellpower more relevant, but the
headcount has the same effect with fewer keypresses.

3 months agoAllow rebranding weapons to spectral (hellmonk)
Nicholas Feinberg [Sat, 7 Nov 2020 17:51:39 +0000]
Allow rebranding weapons to spectral (hellmonk)

Seems fun. Weights chosen fairly arbitrarily.

I also considered allowing SPWPN_ACID, but it'd be a bit dicey code-wise.

3 months agoReorder the Necronomicon (Lightli)
Nicholas Feinberg [Sat, 7 Nov 2020 16:34:17 +0000]
Reorder the Necronomicon (Lightli)

Fix spell level order.

3 months agoIsolate poly set rng
advil [Sat, 7 Nov 2020 16:04:09 +0000]
Isolate poly set rng

This should keep the randomization here from having any impact on the

3 months agolint
advil [Sat, 7 Nov 2020 15:52:55 +0000]

3 months agoIsolate monster rng
advil [Sat, 7 Nov 2020 15:47:30 +0000]
Isolate monster rng

There's lots of reasons to do this already, but after the recent poly
changes, the resulting rng state after every monster is dependent on the
global set of what monsters are valid, meaning that adding or removing
monsters would be highly likely to change every seed. So, isolate each
monster roll entirely so that stuff like this does not affect level

Needless to say, this commit itself breaks seed stability for every

3 months agoFix a dumb and pointless joke (advil)
Nicholas Feinberg [Sat, 7 Nov 2020 15:43:46 +0000]
Fix a dumb and pointless joke (advil)

3 months agoFix polymorphing band members (advil)
Nicholas Feinberg [Sat, 7 Nov 2020 15:41:35 +0000]
Fix polymorphing band members (advil)

Ringo, look out!

3 months agoAdd poly save compat for removed mons (advil)
Nicholas Feinberg [Sat, 7 Nov 2020 15:37:54 +0000]
Add poly save compat for removed mons (advil)

Very unsure about this code tbh...