8 months agoChangelog updates for 0.25 release 0.25.0
gammafunk [Fri, 12 Jun 2020 07:43:07 +0000]
Changelog updates for 0.25 release

First attempt at finalizing release highlights and update the debian

(cherry picked from commit 35acc811ca793aae16c45c385c440107c0939756)

8 months agoFix an interaction of fallback randarts and acquirement (12277)
advil [Thu, 11 Jun 2020 19:03:48 +0000]
Fix an interaction of fallback randarts and acquirement (12277)

I hadn't fully understood one of the ways in which acquired objects
could interfere with unrand generation. After this commit, unrands that
place outside of levelgen (acquirement) or in the abyss or a trove
should always cause later instances of that unrand to simply be replaced
with a fallback randart, and have no other effect on item generation
during levelgen. Before this commit, unrands that were forced by vaults
would be correctly replaced with a fallback if they had already been
acquired, but unrands that were placed randomly (e.g. by | in a vault;
Slime:5 was a good place to check) could be affected by previous
acquirements in a way that had unpredictable results for those items.
I'm pretty sure that this bug had no impact on item generation (or
levelgen more broadly) outside of those specific grids.

This commit may change some seeds as I'm adding a subgenerator the will
impact certain rare cases of unrand placement (mainly for uniques who
can come with a special unrand). These uniques may need further testing.

No save compat for this, so upgrading will lead to the same behavior as
games from before this commit would have.

(cherry picked from commit 850bfe61e39c27fcdc3dcf3f7b28b0b55a6c1371)

8 months agoFix pregeneration for upgrades where branch size changes
advil [Tue, 9 Jun 2020 19:19:21 +0000]
Fix pregeneration for upgrades where branch size changes

Pregeneration was using the current branch depth, rather than branch
depth from the save. (It's possible that saves this old should be
automatically treated as `classic` levelgen mode, too.)

(cherry picked from commit 18c3a0dd01f83f30f4c71fb6e24ffc45e25cc65c)

8 months agoDon't warn about blocked LOF for Starburst
gammafunk [Thu, 11 Jun 2020 13:12:42 +0000]
Don't warn about blocked LOF for Starburst

Starburst is essentially untargeted, but its tracer beams were
generating line of fire warnings whenever any of its 8 tracer beams had
line of fire blocked from player to a location at spell radius away.
Some beams might hit a monster even if others have LOF blocked. The
tracer beam target locations aren't important in any way as they just
exist to let the tracers hit the entire spell radius.

It might be nice to give the LOF prompt if all beams that might hit a
monster have blocked LOF. That would require some significant
refactoring, so for release, this commit removes the warnings
specifically for Starburst.

8 months agoFix some target prompts under Fedhas
gammafunk [Thu, 11 Jun 2020 07:26:04 +0000]
Fix some target prompts under Fedhas

Fedhas completely protects allied plants from the effects of Airstrike,
Shatter, and tin of tremorstones, but players currently receive
incorrect penance warnings when using these effects. Add the relevant
Fedhas ally checks so that the attack prompt won't be triggered for
these cases.

Fedhas currently doesn't protect allied plants from player Freeze, but
the prompt correctly warns them in this case. Freeze and intentional
melee attacks are the remaining exception where we do apply Fedhas
penance, but there's no reason for these exceptions to exist that I'm
aware of. It would easier to centralize the prompting logic in
bad_attack() if all attempts at harming a Fedhas ally by the player were
prevented. This can be addressed in a future commit, but the fixes in
this commit will be enough for release.

8 months agoChange = to == in checking crawl_state.type
shummie [Mon, 8 Jun 2020 19:53:46 +0000]
Change = to == in checking crawl_state.type

Every game is displaying the seed, whether or not it's a custom game since the statement evaluates as true.

(cherry picked from commit 6c07f0ee8d465e3e9ea0214c88ad614b59fecd43)

8 months agoFix viewmap catch2 even more
advil [Sun, 7 Jun 2020 17:22:15 +0000]
Fix viewmap catch2 even more

(cherry picked from commit 79b31b866221e7ae4d7b6055fa5c36dd7884a028)

8 months agoFix catch2 tests for map panning / clamping
advil [Sun, 7 Jun 2020 16:52:16 +0000]
Fix catch2 tests for map panning / clamping

(cherry picked from commit eb7e7872c213f5cef4e0adbd47b661165b4c4ea2)

8 months agoShow seed for seeded play with welcome message
advil [Mon, 8 Jun 2020 17:57:00 +0000]
Show seed for seeded play with welcome message

This is because of reports of players forgetting that they had a seed
set in their rc file. This also prints it on the "welcome back" message,
not sure if that's too repetitive.

Also, tweak this message a bit.

(cherry picked from commit 00fb324cd09f9518cf33ae1896d3cc5e93489a07)

8 months agoTweak how seed games are displayed in ?v and chardump
advil [Mon, 8 Jun 2020 17:46:28 +0000]
Tweak how seed games are displayed in ?v and chardump

Consolidated code between these two. This doesn't matter so much for
chardump, where the first line also says "Seeded", but it's a good
reminder for players looking at their seed in ?v. I've heard of players
forgetting they were starting a game in seeded mode (e.g. when setting
it via the rc) so there's maybe more telegraphing of this mode that
could be done somewhere.

(cherry picked from commit d69c119aaa7d7331e97fc7827915a25bf11017d5)

9 months agosemicolon
advil [Sun, 7 Jun 2020 14:40:24 +0000]

(cherry picked from commit 5c1c449dd35ea1ef4cac4c5314d922873a168062)

9 months agoRestore map view clamping behavior (elliptic)
advil [Sun, 7 Jun 2020 14:27:47 +0000]
Restore map view clamping behavior (elliptic)

ca36f614e438 conditioned clamping on `map_bounds` instead of
`known_map_bounds`, the behavior before this commit. I think this was
unintentional, and it leads to weird behavior on unexplored levels in
console (e.g. lets you move the cursor outside of the screen, restores
to known_map_bounds when you move outside of regular map_bounds). This
commit restores the previous behavior for `X` where you can't scroll
beyond known map bounds. As a side note, this is inconsistent with `x`,
where you can, which is kind of messy.

TBD how this commit interacts with the test in bd17af9.

9 months agoUse correct DES syntax for wand charges
gammafunk [Sun, 7 Jun 2020 04:44:54 +0000]
Use correct DES syntax for wand charges

The correct field to set is "charges", not "plus". Fix this in
gammafunk_dig_for_victory. Also remove a reference to max wand charges
in the DES documentation.

(cherry picked from commit 15ccc7ae601939c08280535bd7162a7da788072c)

9 months agoChangelog tweaks
advil [Sat, 6 Jun 2020 16:23:29 +0000]
Changelog tweaks

(cherry picked from commit 45f243fec86c0523a2c7a296ca31fef7a4fcc11c)

9 months agoDon't pick up duplicate tins of tremorstones
Nikolai Lavsky [Thu, 28 May 2020 19:05:01 +0000]
Don't pick up duplicate tins of tremorstones

By default, autopickup ignores tins as all other misc and dangerous
items. But in case the player has `autopickup_exceptions` for them,
duplicate tins should be ignored.

(cherry picked from commit 0e6732e0a6af59df83ec7a023fcf1cbf5057c33f)

9 months agoRemove a stray bolt of fire
advil [Wed, 3 Jun 2020 19:26:12 +0000]
Remove a stray bolt of fire

This really should come with some sanity checking for vault-placed
spellbooks, but I'm just doing the quick fix for now.

Resolves #1442

(cherry picked from commit 98f9fe671ce0708bee87b5ea4978a1763ab68aef)

9 months agoConsolidate code for applying game_scale
advil [Sun, 31 May 2020 17:07:59 +0000]
Consolidate code for applying game_scale

This moves the state out of Options (except for initial setup) and does
the scale calculation in one place; I lumped this in with other
density-related code.

As a side effect, this commit tweaks the timing of when game_scale is
initially applied: it will take effect after the initial loading screen
is displayed. This heads off a bunch of opengl errors that (I think)
were caused by game_scale being applied before device_density is fully

Also, improve some opengl error messaging for debug builds,
constexpr-ify HiDPIState.

(cherry picked from commit 55d99e38fcdaf201cfef3d3b912917da5ba33330)

9 months agoLet tile_filter_scaling=false work on mipmapped textures
advil [Sat, 30 May 2020 20:50:41 +0000]
Let tile_filter_scaling=false work on mipmapped textures

Did you ever get the sense that this setting didn't do much? That's
because it didn't. (All dungeon textures, UI textures, probably more are

This makes high scale values lead to pixellated graphics.

(cherry picked from commit edd8c26f918388319369c116790f55e9084ebf2b)

9 months agoFix font glitches at very high device density
advil [Sat, 30 May 2020 20:10:23 +0000]
Fix font glitches at very high device density

The code that loads in the glyphs was relying on face->bbox to give the
max glyph sizes. Which it does, but insensitive to device pixel scaling.
Coincidentally, the values worked up through 4x scaling, but no further.
This uses the actual correct advances in pixels. One open question: does
this affect font rendering at lower scale values? I'm pretty sure the
answer is no -- that it just affects how efficiently glyphs are packed
at more typical scale values.

(cherry picked from commit a07a990f657920bdbb40fa3395d38db5798f4a84)

9 months agoAdd a global scaling option for local tiles
advil [Sat, 30 May 2020 16:36:00 +0000]
Add a global scaling option for local tiles

OS support for high-dpi rendering varies widely, but the sizes of UI
elements are very hard to adjust for higher-resolution displays where
high-dpi is not supported. This commit adds a coarse global scaling
parameter that mimics high-dpi behavior, scaling by a value from 1-8.
I'm not sure if there's any current devices out there that would need 8,
but 2 and 3 work reasonably well for my 2k ultrawide monitor, so I
expect that even 4 will be usable for a 4k monitor without high-dpi

This is mostly implemented at a very low level by exploiting existing
high-dpi code; it would be nice if this could be consolidated to be done
entirely at the `WindowManager` level.

(cherry picked from commit c699729d39af1c70ebb246fe7f1192c56898b471)

9 months agoRestore note about pasting to local tiles seed selection
advil [Mon, 1 Jun 2020 00:32:27 +0000]
Restore note about pasting to local tiles seed selection

This was lost in 04990682366a as part of improvements to the seed
selection menu (since no button corresponds to [p] and pasting is more
generally possible in local tiles text input). However, I think it's
still useful for players to have a reminder that pasting is possible at
this screen, and describe the way in which it may not behave as

(cherry picked from commit 4f279345d96b1c64467ac45b33d21b7bd5263c16)

9 months agoDon't print "levelgen mode: deterministic"
advil [Sun, 31 May 2020 23:28:41 +0000]
Don't print "levelgen mode: deterministic"

This is the default now and present in basically all morgues on all
servers, no need to mark it explicitly.

(cherry picked from commit b98801ac91897bf1cf898b1e98e55e93e3965249)

9 months agoFix some no_tele_into shops (minmay)
Nicholas Feinberg [Fri, 29 May 2020 22:15:03 +0000]
Fix some no_tele_into shops (minmay)

It was still possible to blink into them and get soft-locked.

Instead, add a helpful escape hatch!

(cherry picked from commit 50178cf780ef9f5f3f59026321a48792b778c185)

9 months agoFix up some typos in the docs folder. (#1434)
aaronegolden [Fri, 29 May 2020 13:39:16 +0000]
Fix up some typos in the docs folder. (#1434)

* Fix some typos in god_creation.txt.

* Fix a typo in the quickstart guide.

* Fix typo in monster_creation.txt.

* Fix some typos in mutation_creation.txt.

* Fix some typos in patch_guide.txt.

* Fix a typo in tiles_creation.txt.

* Fix a typo in translation.txt.

Co-authored-by: Aaron Golden <>
(cherry picked from commit 11e0b32562862e76f4207709cc9a1acbd337767c)

9 months agoTweak dispreferred newgame colors on local tiles
advil [Fri, 29 May 2020 12:50:07 +0000]
Tweak dispreferred newgame colors on local tiles

At darkgray, these read to newer players as unselectable, I think due to
standard UI conventions (noticed this here:

Adjust them to be only slightly darker than the preferred colors. This
may now be too subtle? What might be better is to provide a key with
these menus.

(cherry picked from commit 58eb27aebac64d331345a585a9c4407b37352257)

9 months agoFix an unused param warning
advil [Thu, 28 May 2020 21:48:56 +0000]
Fix an unused param warning

(cherry picked from commit 9e0bf0358992db7f44c769a99012996eaaf19171)

9 months agoFix a signed/unsigned warning
advil [Thu, 28 May 2020 19:23:50 +0000]
Fix a signed/unsigned warning

(cherry picked from commit c8e6c4a4156af2025b822699c73fe445b003f88e)

9 months agoRemove ability to memorize spells from their description
Aidan Holm [Thu, 28 May 2020 16:10:26 +0000]
Remove ability to memorize spells from their description

With the introduction of the spell library, this was only ever possible
by disabling autopickup and then examining a book you were standing on.

(cherry picked from commit c29e872307671ae0c30153365dbb077af791f614)

9 months agoUpdate the changelog
gammafunk [Thu, 28 May 2020 07:15:38 +0000]
Update the changelog

(cherry picked from commit 56b8cd3df03db7992e354d2de7054f731ae50274)

9 months agoA tile for tin of tremorstones (CanOfWorms)
gammafunk [Thu, 28 May 2020 03:09:18 +0000]
A tile for tin of tremorstones (CanOfWorms)

(cherry picked from commit b080af96c6623553fa1add822c0cf60b7dc343bc)

9 months agoDon't have allies avoid player line of fire
gammafunk [Wed, 27 May 2020 06:13:21 +0000]
Don't have allies avoid player line of fire

In 340c9e81, monster AI was improved to avoid LOF between a monster's
allies and their targets. This change had the player considered as an
ally, hence summons in front of a player would try to move out of the
path between the player and a hostile. This is convenient when the
player wants to use a ranged attack, but doesn't work well in the more
common case were allies are used for cover. This commit has the player
not be considered a ranged ally by allied monsters, hence they won't
avoid player LOF, but continues to allow that consideration for fellow
allied monsters.

There's probably no good way to predict when the player wants to make a
ranged attack behind allies, so it's possible that a new 't' command is
the best solution. A way to toggle this LOF-avoidance behaviour through
other 't' commands might need some consideration, if something like this
is implemented.

(cherry picked from commit c929df558523a23e63c82ce3060a57a1adc2bc26)

9 months agoFix a randart name class (12270 / Flugkiller)
advil [Mon, 25 May 2020 20:53:42 +0000]
Fix a randart name class (12270 / Flugkiller)

(cherry picked from commit f97e55dc39afe998812bc2345bd20b6602f9d198)

9 months agoRemove Lightli...
gammafunk [Mon, 25 May 2020 02:09:21 +0000]
Remove Lightli...

...'s lack of credit in CREDITS.txt. Thanks for your submissions!

(cherry picked from commit 5f92b90fa0c7481cd3aeafe41d74871641299f0b)

9 months agoUpdate CREDITS.txt
Edgar A. Bering IV [Mon, 25 May 2020 01:34:26 +0000]
Update CREDITS.txt

(cherry picked from commit 5d2c98bf94f40ca7f773692c66e5d733e898998b)

9 months agoStimulate Xom on worship from a faded altar
Edgar A. Bering IV [Sun, 24 May 2020 20:54:55 +0000]
Stimulate Xom on worship from a faded altar

Closes #1413

Xom doesn't use normal piety, but thinks its hilarious when you end up
worshipping from a faded altar.

(cherry picked from commit e6218251f0ce7c4ecea0b0d2f3e18f30be1eb5ef)

9 months agoDisplay Zz and ? status icons for allies
Nikolai Lavsky [Sat, 16 May 2020 09:13:15 +0000]
Display Zz and ? status icons for allies

Having this information on the main view is useful because confused
allies can attack the player, and paralysed allies block movement.
Also, since the player gets the top-tier stabbing bonus when
attacking sleeping/paralysed/petrified allies, that should be
indicated by the Zz's, TILE_FLAG_STAB, too.

(cherry picked from commit 3fdfaa9094b56e429a7f6979b57ba7e220c30e3b)

9 months agoAdd adjectives to the randart name generator
RojjaCebolla [Sun, 17 May 2020 07:48:47 +0000]
Add adjectives to the randart name generator

[ Committer's note: split some cross-loaded history from this into other
  commits, tweaked and edited. Closes #1414 ]

(cherry picked from commit 366e9434eded899b7cc1f26d78f6850309a408f0)

9 months agoAdd verbs to some randart names
RojjaCebolla [Sun, 17 May 2020 06:21:11 +0000]
Add verbs to some randart names

Randarts can be "of the noun", let's expand that to "of the verbing noun".

[ Committer's note: split out new nouns into a separate commit, removed
  a future goal from the commit message that isn't in line with the
  devteam's goals. ]

(cherry picked from commit 7b3c7a5917ff391aefae6c483abb9c123f65e7a9)

9 months agoNew randart apperance adjectives (cebolla)
Edgar A. Bering IV [Sun, 24 May 2020 20:19:08 +0000]
New randart apperance adjectives (cebolla)

(cherry picked from commit b168a4ef397b0eeca58ddec512ad7be149049772)

9 months agoMore randart nouns (cebolla)
Edgar A. Bering IV [Sun, 24 May 2020 20:07:14 +0000]
More randart nouns (cebolla)

(cherry picked from commit 4aaa7df55cc7a939dd862ac85c32bb3b596a60ec)

9 months agoTypo fix (Goratrix)
Edgar A. Bering IV [Sun, 24 May 2020 19:48:41 +0000]
Typo fix (Goratrix)

(cherry picked from commit 9c5a1843486b887ce3789b739fe6634b633808a1)

9 months agoRevise transmutation miscasts
Edgar A. Bering IV [Sun, 24 May 2020 19:23:01 +0000]
Revise transmutation miscasts

The polymorph effect was very flavorful, but even at minimal power a 150
aut badform was the result. Compared to other miscasts this was too
intense. Reducing form duration would require a significant overhaul of
player badform durations and power scaling because of how the existing
codepath is set-up.

Instead, since this is close to 0.25, this commit changes transmutations
miscasts to increase player contamination: double existing contamination
and then add the resulting miscast damage to the contamination score.

Contam is still flavorful (since transmutations change the body and
contamination is residual magic in the body and high contamination can
cause mutation), though not as dramatic as polymorph.

Possible idea for 0.26: add polymorph as a possible consequence of

(cherry picked from commit 709782ff74ba80b6e8f9adcdb196ad4498488618)

9 months agoDefault `restart_after_save` to true
advil [Sun, 24 May 2020 19:08:17 +0000]
Default `restart_after_save` to true

What this means in practice is that saving returns to the main menu, a
behavior that is much more typical for what people expect these days out
of games. The option is retained for people who like the classic

(cherry picked from commit 750a858e70e7b47fd22455d2acef4e0d8946c0c8)

9 months agoFix tiles
advil [Sat, 23 May 2020 23:55:58 +0000]
Fix tiles

I'm not sure why, but this assert triggers when starting up local tiles.

(cherry picked from commit 32a1ce3a9d21b5af53381a3f13857037f39ffb93)

9 months agoFix some unused function warnings for non-tiles builds
advil [Sat, 23 May 2020 19:56:04 +0000]
Fix some unused function warnings for non-tiles builds

(cherry picked from commit 448add79b74c593ee9ab6a6b9b31c5ceb4778e23)

9 months agoFix the tiles build
advil [Sat, 23 May 2020 19:52:45 +0000]
Fix the tiles build

(cherry picked from commit bc5e7ad058631a9fc9a9fb4c381ca6ff4c891fb5)

9 months agoDon't crash on too small terminal resize (6498)
advil [Sat, 23 May 2020 19:19:46 +0000]
Don't crash on too small terminal resize (6498)

The new behavior is that a message is printed in the upper left telling
the player their terminal is too small, and nothing else is drawn. This
is pretty rough and ready, and there may still be glitches. In most of
my testing a resize event also comes with an ESC (I'm not at all sure
why) and this ends up exiting any exitable menus. You can still get
glitches by resizing in menus that aren't exitable, e.g. the skill menu
with no skills selected. But it's still probably better than crashing.

This largely doesn't work on webtiles builds in terminal, for unclear
reasons.  However, that is not the main use case for this, and webtiles
console is played wrapped in dgamelaunch anyways. In my testing this
isn't a regression relative to current dgl behavior. (...which is a

(cherry picked from commit 9b8842f3ab7c3e483b0781cf2baa8cfb29d4676d)

9 months agoKeep ui sizes in sync with terminal resizes (12260)
advil [Sat, 23 May 2020 18:44:04 +0000]
Keep ui sizes in sync with terminal resizes (12260)

Hopefully this is the right way to do it, but it stops a certain class
of crashes in my testing: start the terminal with size n, shrink to some
size <n that is still a valid terminal size, and hit `S`. (or any other
command that can trigger clear_text_region.)

This fixes the specific crashes reported in:

(though not all crashes on resizing.)

(cherry picked from commit d8d43ee9da1d943d423757aab809dd7a40961caf)

9 months agoAdd 0.24.1 to master changelog
advil [Sat, 23 May 2020 16:08:19 +0000]
Add 0.24.1 to master changelog

was only in a branch before.

(cherry picked from commit cb1fb4266058919fbcd7752ec1fab272d3f05a04)

9 months agoDon't use a valid direction to indicate a cancelled choice
Edgar A. Bering IV [Sat, 23 May 2020 16:02:48 +0000]
Don't use a valid direction to indicate a cancelled choice

Fixes a bug where it was impossible to choose UP_LEFT in the
target-compass prompt.

(cherry picked from commit d791c6801d209806e15f1e02e9c015be3b274ab3)

9 months agoCrash more quickly if (offline) console is resized too small
advil [Sat, 23 May 2020 15:19:43 +0000]
Crash more quickly if (offline) console is resized too small

If `winner` is not valid here, then some of the following coordinate
assignments will also be invalid and lead to somewhat unpredictable
crashes later (because the `valid` bool is set basically if the
coordinate setup aborts in the middle). This standardizes the crashes.

What would be much, much better is if the display just blanked with a
message saying "your term is too small" until the player resized again,
without crashing.

(cherry picked from commit 95c47da36813473c5bd7b879532fa55730c78476)

9 months agoRemove +11 GDA (vt) 0.25-b1
Nicholas Feinberg [Sat, 23 May 2020 04:10:50 +0000]
Remove +11 GDA (vt)

9 months agoAdjust troves fees
CanOfWorms [Fri, 22 May 2020 16:57:18 +0000]
Adjust troves fees

Now that agility potions have become stabbing potions, their situational
utility makes them a poor choice for trove fees.

Scrolls of fog and fear are added as trove fees as well, since they are
both fairly strong defensive consumables, although an argument could be
made that fear's utility decreases as the player progresses in the game.
Both scrolls are given the same fee as blinking, since they have the same
generation weight, but it's also reasonable to make them cost more.

Scrolls of summoning are also a good candidate for trove fees, but I'm
not adding them for now since it requires some uselessness checks if the
player has sacrificed Love under Ru.

9 months agocheckwhite
gammafunk [Fri, 22 May 2020 10:50:20 +0000]

9 months agoInsert a cap in spell failure calculations
CanOfWorms [Fri, 22 May 2020 10:16:18 +0000]
Insert a cap in spell failure calculations

It's possible to cause an overflow in the spell failure calculations with
extreme encumbrance values, achieved by having 0 or 1 strength and wearing
CPA. This commit sets the cap to a value slightly lower than where the
overflow should theoretically occur to avoid this.

This should be considered a temporary solution until something more elegant
is done with the spell failure calculations.

9 months agoRequire upper-case Y to forget Vehumet gifts
Alex Jurkiewicz [Tue, 19 May 2020 22:51:48 +0000]
Require upper-case Y to forget Vehumet gifts

Resolves #1418

9 months agoUpdate misc acquirement handling
Kate [Tue, 19 May 2020 07:06:46 +0000]
Update misc acquirement handling

Don't generate tremorstones in stacks (this would cause crashes since
they're now non-stackable), and don't generate tremorstones again once
they've been seen. Since this makes it possible for all misc items to be
useless (with Sacrifice Love and having found one of each of the XP
evokers), add a fallback to just generate duplicates of the XP evokers.

(Currently the only way to actually acquire misc should be via vault
placement in a couple of sprint maps.)

9 months agoRemove acquirement items from some abyss vaults
Kate [Tue, 19 May 2020 06:29:25 +0000]
Remove acquirement items from some abyss vaults

Only troves should use actual acquirement code to generate tailored items -
other vaults use good_item for high-quality loot.

9 months agoFix a broken alphashops entry (#12262)
Kate [Tue, 19 May 2020 03:42:47 +0000]
Fix a broken alphashops entry (#12262)

alphashops places items by subtype only and doesn't generate items that
require "ego" lines, so changing harm from an amulet to a scarf means it
should be removed from the vault (since the "S" shop already places

Since scarves are defined purely by their ego and are more like jewellery
than other armour slots, it'd probably also be fine to rework the vault to
remove scarves from "S" and place each ego in the relevant shop.

9 months agoEven more save info fixes / tweaks
advil [Mon, 18 May 2020 23:56:15 +0000]
Even more save info fixes / tweaks

9 months agoObvious bugfix
advil [Mon, 18 May 2020 23:08:20 +0000]
Obvious bugfix

9 months agoCorrectly handle pre_options for json calls
advil [Mon, 18 May 2020 22:59:01 +0000]
Correctly handle pre_options for json calls

In order for the dgamelaunch-config wrapper scripts to work, these have
to be passed. This also corrects a bunch of other issues that showed up
in live testing: don't pass other options, pass a dummy username for the
sake of launcher scripts (they crash if this isn't there).

9 months agoFixes for live-debug mode
advil [Mon, 18 May 2020 20:30:49 +0000]
Fixes for live-debug mode

Move sockets to a separate directory, so the real server doesn't try to
connect to them. (A few other tweaks.)

9 months agoAdd a debug mode for live-testing server updates
advil [Mon, 18 May 2020 19:28:16 +0000]
Add a debug mode for live-testing server updates

This may or may not be entirely safe to use in reality...

9 months agoFix a typo
advil [Mon, 18 May 2020 18:51:07 +0000]
Fix a typo

9 months agoFix some issues with lobby template timing
advil [Mon, 18 May 2020 17:32:56 +0000]
Fix some issues with lobby template timing

* Send an initial empty template when logging in, since it can take a
  noticeable lag to fill in the save info.
* rerender the banner even for logged-out users - previously, updates to
  the banner would require a server restart for logged-out users to see.

9 months agoLet --port disable SSL for now
advil [Mon, 18 May 2020 16:28:49 +0000]
Let --port disable SSL for now

Since this options is mainly intended for testing, hopefully for running
a concurrent testing server, we don't want a bind error if the config
does set up SSL. So for now, just have the CLO disable SSL altogether.
If there's demand something better could be done.

9 months agoAdd some command line options, refactor
advil [Mon, 18 May 2020 16:10:52 +0000]
Add some command line options, refactor

Also, remove dependence on `from config import *`. I think I've gotten
everything, but because a lot of options are used only in very specific
server configs it's hard to test thoroughly.

9 months agoRemove unused member
Aidan Holm [Thu, 14 May 2020 16:19:48 +0000]
Remove unused member

9 months agoFix a couple typos in options_guide.txt (#1412)
Nathan Mills [Sun, 17 May 2020 02:26:19 +0000]
Fix a couple typos in options_guide.txt (#1412)

9 months agoPlaceholder tiles for cigotuvi's embrace
advil [Sat, 16 May 2020 18:08:07 +0000]
Placeholder tiles for cigotuvi's embrace

The item tile is a butchering of the shadow dragon armour with a bit of
the shape hacked off and some unpleasant brown-to-green colors replacing
the red.  The equip tile is just an existing green armour tile that was
kicking around unused (at least as far as I saw), it's not really a
perfect match but it's ok-ish for now. I eagerly await replacements from
a real artist, but for a release anything seems better to me than a TODO

9 months agoHood of the assassin tiles (RojjaCebolla)
advil [Sat, 16 May 2020 17:10:59 +0000]
Hood of the assassin tiles (RojjaCebolla)

This replaces some TODO tiles, see #1387.

9 months agoFix a bug with shared save slots in the lobby
advil [Sat, 16 May 2020 14:55:59 +0000]
Fix a bug with shared save slots in the lobby

When starting a new game or ending a game, save slot info did not get
updated properly for other game types that shared a slot. This is a sort
of basic fix, in that it isn't caching very well (because the way crawl
handles save slots is a bit of a mess).

No servers are using this yet, so I don't think it has been an issue in

9 months agoVisual tweaks to lobby save browser
advil [Sat, 16 May 2020 13:29:45 +0000]
Visual tweaks to lobby save browser

The endless [start] links didn't look great on servers that have lots of
binaries, especially ones that don't support showing save info.

Also, adjust the sample game config to something a bit more like what
typically shows up on servers.

9 months agoRevert "Prevent formicids from falling far (for flavour)"
Kate [Sat, 16 May 2020 05:28:50 +0000]
Revert "Prevent formicids from falling far (for flavour)"

The flavour justification for having shafts work differently on Formicids is
fairly weak, and doesn't really make it worth adding on as an additional
minor species property.

This reverts commit a0b20f49667755fb8d06100433ec6928ee9a1179.

9 months agoFormicids cannot cast Swiftness
David Damerell [Thu, 10 Oct 2019 21:48:55 +0000]
Formicids cannot cast Swiftness

This has been a long-standing bone of contention in vanilla (see Mantis
issue 7786) because the original formicid restrictions were a somewhat
arbitary duplication of the effects of the now-gone amulet of stasis.

If formicids can't benefit from Haste, well Swiftness is Haste Lite.

This change is borrowed from Stoat Soup.

9 months agoPrevent formicids from falling far (for flavour)
RojjaCebolla [Thu, 14 May 2020 11:50:50 +0000]
Prevent formicids from falling far (for flavour)
As shafters and tunnelers, they needn't have their self-shaft
escape ability hosed by shaft traps;  they can halt their fall
and dig to safety after falling only one floor.

9 months agocheckwhite (again??)
advil [Sat, 16 May 2020 00:15:09 +0000]
checkwhite (again??)

9 months agoAnother linting fix
advil [Fri, 15 May 2020 23:56:04 +0000]
Another linting fix

9 months agocheckwhite
advil [Fri, 15 May 2020 22:54:57 +0000]

9 months agoDon't disallow % formatting
advil [Fri, 15 May 2020 22:54:29 +0000]
Don't disallow % formatting

9 months agoFix flake8 errors
advil [Fri, 15 May 2020 22:44:37 +0000]
Fix flake8 errors

at least locally. Mostly false positives to do with bad interactions
with comment typing.

9 months agoUpdate the changelog
Edgar A. Bering IV [Fri, 15 May 2020 22:35:19 +0000]
Update the changelog

9 months agoRemove isort as a CI check
advil [Fri, 15 May 2020 22:14:38 +0000]
Remove isort as a CI check

I think this is something that it's useful for someone to run every few
months, but not a good fit for a lint check run on every push.

9 months agoReveal invisible monsters that fire visible beams at the player (minmay)
Edgar A. Bering IV [Fri, 15 May 2020 21:26:12 +0000]
Reveal invisible monsters that fire visible beams at the player (minmay)

This prevents an information asymmetry for players that don't use or
cannot see animations.

9 months agoUse the magic mapping glyph for unvisited stairs and teleporters
Edgar A. Bering IV [Fri, 15 May 2020 20:17:40 +0000]
Use the magic mapping glyph for unvisited stairs and teleporters

By default this is not a distinct glyph. Using the magic mapping glyph
for unvisited stairs and teleporters allows visually impaired players to
screen read this information easily which was previously only
communicated by colour.

This does mean the magic mapping glyph has a slight overload for stairs
(unvisited vs. completely unseen) but the two different meanings are
close enough and the information about stair connectivity isn't provided
until the player actually views the stair; this is a strict improvement
for visually impaired players.

9 months agoAllow customizing the travel trail
Edgar A. Bering IV [Fri, 15 May 2020 17:46:35 +0000]
Allow customizing the travel trail

Add a dummy feature DNGN_TRAVEL_TRAIL for console display customization,
like DNGN_EXPLORE_HORIZON. Visually impaired players have asked that it
be easier to distinguish the auto travel trail using a screen reader by
setting it to a different glyph. Sighted players might also like this
option, or the option to customize the colour.

9 months agoFix some pep 8 stuff
advil [Fri, 15 May 2020 16:55:35 +0000]
Fix some pep 8 stuff

9 months agoAdd a comment about JSON decoding errors
advil [Fri, 15 May 2020 16:09:58 +0000]
Add a comment about JSON decoding errors

9 months agoHandle a bad dgl-config + webtiles interaction
advil [Fri, 15 May 2020 16:03:47 +0000]
Handle a bad dgl-config + webtiles interaction

The dgl-config game launchers, except under whitelisted conditions, will
send a clear screen + go upper left escape code, which will mess up any
json output from various CLOs. This commit handles the resulting
corrupted output more gracefully. To actually fix this, servers running
dgamelaunch-config will need to merge the following commit into their
launcher scripts:

9 months agoFix flake8 error
advil [Fri, 15 May 2020 15:05:28 +0000]
Fix flake8 error

9 months agoAdd experimental save info to webtiles lobby
advil [Fri, 15 May 2020 03:40:07 +0000]
Add experimental save info to webtiles lobby

This adds some features for showing save info to the webtiles lobby, a
longstanding ui gap. This is all relatively experimental and disabled by
default; I think it may need some tweaking once it hits a live server.
Because this feature is aiming for backwards compatibility there are a
number of idiosyncracies to the implementation. Number one is that it
accepts the (extremely confusing) way dcss treats save slots - for each
player and game version, one save slot for sprint, and one for all other
game types.

9 months agoCLO to give game types in json
advil [Thu, 14 May 2020 21:23:04 +0000]
CLO to give game types in json

Aimed at alternative save browsers.

9 months agoAdd a CLO that prints save info as json
advil [Thu, 14 May 2020 01:55:48 +0000]
Add a CLO that prints save info as json

For use with file browsers outside the game proper.

9 months agoDisable yaml games by default
advil [Fri, 15 May 2020 14:51:41 +0000]
Disable yaml games by default

DGL is copying the games.d folder automatically, which leads to trying
to load the sample one on top of existing real configs. Disable by
default for update compatibility.

9 months agoPython 2.7 compatibility
advil [Fri, 15 May 2020 14:40:38 +0000]
Python 2.7 compatibility

9 months agoAdd a recommended options section for blind players (#1407)
Edgar A. Bering IV [Fri, 15 May 2020 14:35:15 +0000]
Add a recommended options section for blind players (#1407)

Closes #1407

[skip ci]

9 months agoAdd back in all non-default templates for compatibility
advil [Fri, 15 May 2020 13:29:01 +0000]
Add back in all non-default templates for compatibility

A running server will go into a crash loop without these, especially the
missing `shutdown.html` (which actually prevents the server shutting
down). Most DGL setups *shouldn't* be affected by these files being
missing, but given what happens if shutdown.html is missing, it's safer
to do the master commit without the files missing.  Someday these can be
deleted from the main repository.

9 months agoAlways show milestone column
Alex Jurkiewicz [Mon, 6 Apr 2020 22:18:02 +0000]
Always show milestone column

A future commit will allow specifying milestone path in each game
definition, which significantly reduces the complexity of configuration.

9 months agoAllow overriding some HTML templates
Alex Jurkiewicz [Mon, 6 Apr 2020 22:17:49 +0000]
Allow overriding some HTML templates

Server operators can create custom versions of the banner, footer, and
shutdown templates without needing to overwrite source-controlled files.