2 months agoDon't auto-drop ?tele in Gauntlet (Yermak)
Nicholas Feinberg [Mon, 18 Jan 2021 17:35:29 +0000]
Don't auto-drop ?tele in Gauntlet (Yermak)

For purposes of auto-selecting items for drop with `d,`, ignore temp
conditions such as 'being in Gauntlet'. This should discourage accidents.

2 months agoAdjust timing for evoked unrand HP/MP costs
Kate [Sun, 17 Jan 2021 03:37:17 +0000]
Adjust timing for evoked unrand HP/MP costs

As with the Majin-Bo in 0fe236c, reduce HP and MP as a cost before activating
the ability, and refund it if the ability is aborted.

2 months agoDon't show Fridge accuracy (lici)
Nicholas Feinberg [Sun, 17 Jan 2021 00:08:25 +0000]
Don't show Fridge accuracy (lici)

Since it always hits!

2 months agoAdd a missing of (Aliscans)
Edgar A. Bering IV [Fri, 15 Jan 2021 15:44:29 +0000]
Add a missing of (Aliscans)

2 months agoDon't remain curled while delayed (12443)
Edgar A. Bering IV [Fri, 15 Jan 2021 05:43:18 +0000]
Don't remain curled while delayed (12443)

2 months agoFix a teleport closet (MakMorn)
Edgar A. Bering IV [Thu, 14 Jan 2021 18:37:32 +0000]
Fix a teleport closet (MakMorn)

2 months agoPrevent trampling a constricted actor (12432)
Edgar A. Bering IV [Thu, 14 Jan 2021 18:07:06 +0000]
Prevent trampling a constricted actor (12432)

The other option would be to have constriction broken on trampling.
However, I went with this resolution because either:
 - the player is being trampled and constricted, don't make their life
 - or the player has allies and is trying to do both things to a target,
   creating an ally-micromanagement encouraging edge case

2 months agoDon't update constriction when testing door seals
Edgar A. Bering IV [Thu, 14 Jan 2021 17:44:25 +0000]
Don't update constriction when testing door seals

The vault warden AI check to see if it should seal a door
was using move_to_pos to evaluate the tension of actor moves, but
move_to_pos handles updating constriction information of the
constrictor. The result was that if the check needed to test if pushing
something through a door in a way that would break constriction was a
good idea, the constriction would actually break, even if the monster
ultimately decided to not close the door!

Closes #1566

2 months agoFix a tension check for runic seals (8085, 10542)
Edgar A. Bering IV [Thu, 14 Jan 2021 17:22:03 +0000]
Fix a tension check for runic seals (8085, 10542)

The previous tension check for closing doors had an incorrect
conditional, so that if tension were *increased* by the closure, the
warden would not decide to close the door! Additionally, this check
returned true in situations where the tension was 0 before and after the
closure. The result of the latter behavior was often locking the player
in with their allies away from the warden.

Closes #1534

2 months agoAdjust the charging of Majin-Bo's hp cost
Edgar A. Bering IV [Thu, 14 Jan 2021 16:10:54 +0000]
Adjust the charging of Majin-Bo's hp cost

Don't send it through ouch, it should be treated like an ability hp
cost, not damage (so no harm scaling!). Also, dec the hp at the same
place as the mp cost of the spell, for appropriate sequencing of the
effect and to give the player a preview of the cost while targeting.

Closes #1578

2 months agoRemove an obsolte comment
Edgar A. Bering IV [Thu, 14 Jan 2021 15:52:12 +0000]
Remove an obsolte comment

2 months agoAnger monsters who block player attacks
Edgar A. Bering IV [Thu, 14 Jan 2021 15:26:14 +0000]
Anger monsters who block player attacks

Consistent with dodged attacks that the monster is awake to notice.
Closes #1612

2 months agoSimplify Tornado interactions with distance movement
Edgar A. Bering IV [Thu, 14 Jan 2021 14:10:03 +0000]
Simplify Tornado interactions with distance movement

Prior to this commit, if the player moved by translocating (or Ba hop)
multiple tiles while under the effects of tornado, the tornado was
cancelled, without requiring cooldown, UNLESS the translocation landed
the player in a tornado cloud, in which case the tornado duration was
decremented by a translocational penalty.

No change to duration was incurred on taking a passage of golubria or

On taking stairs the tornado was cancelled with no cooldown.

This commit changes the behavior to: blinknado is ok, but all other long
distance changes end tornado and give the cooldown.

Closes #1611

2 months agoDon't offer conjured things god blessings
Edgar A. Bering IV [Thu, 14 Jan 2021 12:40:54 +0000]
Don't offer conjured things god blessings

Closes #1648

2 months agoRestore Zyme sickness
Edgar A. Bering IV [Thu, 14 Jan 2021 12:17:14 +0000]
Restore Zyme sickness

Incorrectly changed an undead state check when rot changes were made
in 4cbea82fa3. US_ALIVE is tragically false.

Closes #1677

2 months agoFix a teleport closet
Edgar A. Bering IV [Thu, 14 Jan 2021 11:57:41 +0000]
Fix a teleport closet

Closes #1681

2 months agoQuiet down Irradiate (#12446)
wheals [Thu, 14 Jan 2021 08:22:07 +0000]
Quiet down Irradiate (#12446)

I'm guessing, based on loudness being set to 0, that it was never
expected to have the explosion noise. However, explode() reset the
loudness anyway, so setting it manually had no effect.

2 months agoFix webtiles rendering of ctrl keys
advil [Thu, 14 Jan 2021 01:36:46 +0000]
Fix webtiles rendering of ctrl keys

I honestly have no idea how these were displaying in console, but they
were, so I assumed they would work in webtiles as well. But something
low-level that I haven't found must have been doing the actual rendering
in a way that didn't convert them to readable strings in webtiles. This
is a quick patch to render them correctly in the macro menus.

2 months agoSuppress DGL clrscr escape code during targeting
advil [Wed, 13 Jan 2021 19:10:38 +0000]
Suppress DGL clrscr escape code during targeting

On a USE_DGAMELAUNCH=yes build, clrscr calls send an escape code that is
interpreted by dgamelaunch as a clrscr command, and is also apparently
used to synchronize ttyrecs (??). This happens at the same time as
regular ncurses clrscr, but it seems that it is likely sent and
processed immediately, whereas clrscr has no effect until a refresh().
Since 38af612a8a6b923, while targeting, the entire console display is
fully cleared and redrawn on every key (via the call chain
UIDirectionChooserView::_render() -> redraw_screen -> draw_border ->
clrscr). I have not been able to fully understand either why this does
happen or why it needs to happen (the screen is actually cleared by a
call to that wipes out everything during the ui
render chain, making a full redraw necessary), but the net effect is
that this causes a lot of blinking when playing in console through
dgamelaunch, especially with a low ping.

As an interim solution, in this commit I've simply suppressed all dgl
clear codes during targeting. They happen often enough otherwise that
hopefully this wouldn't cause any synchronization problems, if anything
is even using these codes any more.

2 months agoRemove some console blinkiness in map view
advil [Wed, 13 Jan 2021 01:01:11 +0000]
Remove some console blinkiness in map view

As far as I can tell, this update_screen call is guaranteed to force an
update on a blank screen, and since it is triggered on every refresh in
map view, it is making map view extra blinky (especially over ssh). I
can't find any negative consequences of just removing it.

2 months agoFix more net trap bugs
Nicholas Feinberg [Tue, 12 Jan 2021 16:23:43 +0000]
Fix more net trap bugs

Don't allow players to collect infinite nets by either (a) being in
dragon/tree form or (b) just being already in a net when another net

2 months agoFix a console hud issue at high turncounts (gressup)
advil [Mon, 11 Jan 2021 22:21:47 +0000]
Fix a console hud issue at high turncounts (gressup)

This code used a constant number of spaces to clear the rest of the
turncount line, but didn't factor in the fact that cprintf wraps; at
high turncounts (6+ digits) on long autoexplore/autotravel spans (>10.0
auts) it could therefore overwrite 1-2 letters of the weapon display.
Recent changes reduce how often the weapon redraws, so this has probably
become more visible lately. Despite that, this is a vintage bug,
originating from ce229f1793ccd.

2 months agoFix monster tracers for Call Down Damnation
Edgar A. Bering IV [Sun, 10 Jan 2021 22:00:49 +0000]
Fix monster tracers for Call Down Damnation

The tracer behavior was inadvertently changed in 2f2a4d8ed992e13 which
refactored CALL_DOWN_DAMNATION into a zap. In doing so no longer failed
to set the explosion size for the tracer.

Closes #1678

2 months agoMore insubstantial wisp removal
gammafunk [Sun, 10 Jan 2021 16:01:37 +0000]
More insubstantial wisp removal

Remove descriptions and quotes in various languages.

3 months agoUpdate keybind.txt for 0.26 changes
advil [Sun, 10 Jan 2021 03:39:14 +0000]
Update keybind.txt for 0.26 changes

...missed this.

3 months agoFix confused ctrl-attacks
advil [Sat, 9 Jan 2021 23:33:51 +0000]
Fix confused ctrl-attacks

The code that handles this case got elided in 6b3f3ad2d24f (possibly I
was assuming it was handled elsewhere, but it isn't, because of

3 months agoUpdate monster disintegrate description
Kate [Sat, 9 Jan 2021 20:20:20 +0000]
Update monster disintegrate description

3 months agoFix grammar in miscast descriptions
Kate [Sat, 9 Jan 2021 20:08:48 +0000]
Fix grammar in miscast descriptions

3 months agoFix various will-o-the-wisp vaults
Nicholas Feinberg [Sat, 9 Jan 2021 20:37:37 +0000]
Fix various will-o-the-wisp vaults

Replacing insubstantial wisps with the much more threatening
will-o-the-wisps 1:1 produced some unintententionally deadly results.

3 months agoAdd a trunk reminder for the 0.26 tournament
Edgar A. Bering IV [Fri, 8 Jan 2021 19:31:42 +0000]
Add a trunk reminder for the 0.26 tournament

3 months agoFinal credit roll for 0.26
Edgar A. Bering IV [Fri, 8 Jan 2021 16:44:07 +0000]
Final credit roll for 0.26

3 months agoFinal changelog update for 0.26.0
gammafunk [Fri, 8 Jan 2021 16:06:50 +0000]
Final changelog update for 0.26.0

Oops! Forgot to do this before tagging.

3 months agoUpdate the Debian changelog for 0.26
gammafunk [Fri, 8 Jan 2021 15:41:53 +0000]
Update the Debian changelog for 0.26

3 months agoBetter handle a webtiles error case
advil [Fri, 8 Jan 2021 15:37:01 +0000]
Better handle a webtiles error case

I think this probably results from something being misconfigured with
socket paths; it's being triggered on CBR2 currently by connecting via

3 months agoTweak lua documentation and get it to build
Edgar A. Bering IV [Fri, 8 Jan 2021 09:51:34 +0000]
Tweak lua documentation and get it to build

The internal ldoc error was not, as had been suspected by me, a version
problem, but a lack of good error messages from ldoc! After some tweaks,
`make api` now runs again under ldoc 1.4.6-2 in lua5.3 (I'm not going to
figure out how to make this work with contribs becuase that would surely
require vendorizing ldoc...).

Some typos and type-os (misuses of tparam) are also corrected.

3 months agoNew Fenstrider Witch tile (canofworms)
Nicholas Feinberg [Fri, 8 Jan 2021 06:29:36 +0000]
New Fenstrider Witch tile (canofworms)

3 months agoReplace Bloated Husk tile
Nicholas Feinberg [Fri, 8 Jan 2021 06:29:16 +0000]
Replace Bloated Husk tile

Look familiar? (It's a recolour of the very old Plague Shambler tile.)

3 months agoAttempt to handle WebSocketClosedError in Tornado 6
advil [Fri, 8 Jan 2021 02:14:45 +0000]
Attempt to handle WebSocketClosedError in Tornado 6

Under high load conditions (I think, I haven't replicated this) in
current versions of Tornado, write_message can return non-trivial
Futures. Our code has assumed that these are always trivial, and
therefore, did not do any exception handling; a timeout under these
conditions causes a *lot* of annoying log messages, coinciding with
server lag/thrashing, though I'm not sure of the causal direction. We've
been seeing this specifically on CBR2.

This commit adds an exception handler for the async part of
write_message, using a callback (in a kind of ugly fashion). I haven't
locally replicated the exact issue, but I have tested this callback by
modifying Tornado. Some day, maybe this code can all be made to use
async directly. At worst, this fix will make the log messages a lot
cleaner; I do suspect it won't do more than that for the deeper problem,
but it will also hopefully provide some clues as to what is going on.

3 months agoFix some oddnesses with fire order from invalid quivers
advil [Thu, 7 Jan 2021 21:58:18 +0000]
Fix some oddnesses with fire order from invalid quivers

This isn't a very general fix, and will lead to odd behavior if
launchers are not first in the player's fire order, but I don't want to
mess with this too deeply given the release timing.

3 months agoPrioritize sandblast over throwing stones for EE start (ardl)
advil [Thu, 7 Jan 2021 21:47:39 +0000]
Prioritize sandblast over throwing stones for EE start (ardl)

This is extremely special-case-y, but EE players will almost certainly
want to do this right away anyways, and it better matches other
elemental starts. I at least made it check fire order first.

3 months agoMissed hailstorm animations from 64bdb92e382d
advil [Thu, 7 Jan 2021 21:46:32 +0000]
Missed hailstorm animations from 64bdb92e382d

3 months agoRemove references to Charms magic (split)
gammafunk [Thu, 7 Jan 2021 16:57:41 +0000]
Remove references to Charms magic (split)

In the manual and in the aptitude list templates.

3 months agoImprove coverage of disabling beam animations (12356)
advil [Wed, 6 Jan 2021 22:21:00 +0000]
Improve coverage of disabling beam animations (12356)

This gets lightning rod, tremorstones, glaciate, ignition, hailstorm,
and static discharge.

3 months agoDon't process click_to_travel minimap clicks in map mode
advil [Wed, 6 Jan 2021 21:07:57 +0000]
Don't process click_to_travel minimap clicks in map mode

If you left-clicked the minimap while in map (`X`) mode, this would
start autotravel, and then "continue" it when exiting map mode in any
way including escape. In #1508 it was also reported that this sequence
of actions caused a crash on windows; it isn't surprising to me that
activating click_to_travel without leaving map mode would crash, though
I didn't get it to crash on mac. In any case, this behavior doesn't make
sense (escape should abort), so remove it, and hopefully fix the crash
on windows as well.

3 months agoDon't crash with extreme game_scale values
advil [Wed, 6 Jan 2021 20:28:28 +0000]
Don't crash with extreme game_scale values

These can lead to bad memory corruption and crashes if they result in
regions having size 0. Instead of crashing, print an error message to
the player and abort.

3 months agoFix a glyph size issue (powerbf)
advil [Wed, 6 Jan 2021 19:02:04 +0000]
Fix a glyph size issue (powerbf)

I *think* what was happening here is an off-by-one error; if the glyph
size is exactly the max advance the stored version was failing to be
doubled, and was short one column; this column was getting overwritten
by an adjacent glyph. Huge thanks to powerbf in #1482 for doing the
bisection + debugging to figure out the source of the problem. I wont'
auto-close that PR as I'd like to get this tested on other OSs.

3 months agoRevert "Explicitly set window opacity"
advil [Wed, 6 Jan 2021 14:46:30 +0000]
Revert "Explicitly set window opacity"

This commit probably didn't do anything (or so I was convinced by
discussion in #1562), and will prevent building against xenial, which we
are currently targeting for debs.

This reverts commit 613af4b37b82d0001911d91b8d37d4153b36e1ad.

3 months agoUpdate changelog for 0.25.1
Goratrix [Wed, 6 Jan 2021 11:13:14 +0000]
Update changelog for 0.25.1

This changelog entry was only commited in 0.25 branch when 0.25.1
was released, not to master, so it's missing now from 0.26 and master
changelog file.

3 months agoRemove travis
advil [Wed, 6 Jan 2021 14:38:56 +0000]
Remove travis

3 months agoTweak autofire description in key help
advil [Wed, 6 Jan 2021 14:35:25 +0000]
Tweak autofire description in key help

... to make clear that untargeted actions are activated.

3 months agoChangelog updates
advil [Tue, 5 Jan 2021 19:27:49 +0000]
Changelog updates

* More on newquivers
* add a bunch of smaller options/lua/ui features mostly from outside
* Put all key combos for this version in `` (I realize this isn't md
  but it's still easier to read that way.)

3 months agoFix quiver redraw issues on delay interrupt
advil [Tue, 5 Jan 2021 15:53:26 +0000]
Fix quiver redraw issues on delay interrupt

Depending on the exact timing, a stat redraw sometimes wouldn't happen
immediately after a delay interrupt, leading to incorrectly showing a
quiver as disabled. This commit adds some delay-related checkpoints to
ensure that the quiver info is up-to-date, and forces a stat redraw on
runrest delay end. (This could come up for other interrupted delays?)

This is somewhat delicate to debug/replicate because messaging can force
a stat redraw itself.

3 months agoFix target check for LRD
advil [Tue, 5 Jan 2021 15:28:05 +0000]
Fix target check for LRD

This spell is LOS range so there's no impact wrt the spell's effect, but
this fixes quiver status and messaging. I think the manual
special-casing in the range check originates from when this spell could
destroy walls.

3 months agoFix autofight messaging for spells with no target in range
advil [Tue, 5 Jan 2021 15:23:04 +0000]
Fix autofight messaging for spells with no target in range

Not sure exactly when this got broken, but this commit cleans up a few
issues with how this was previously implemented.

3 months agoRemove some debug code
advil [Tue, 5 Jan 2021 14:07:30 +0000]
Remove some debug code

3 months agoFix nzn_winding_woodlands_15x15_boxy_spiral
nikheizen [Tue, 5 Jan 2021 07:09:18 +0000]
Fix nzn_winding_woodlands_15x15_boxy_spiral

This subvault was only 14 cells wide instead of 15. This commit fixes it
and makes the central vault slightly more resilient to vault burning.

3 months agoDisallow throwing stones while wielding a sling
advil [Mon, 4 Jan 2021 21:36:37 +0000]
Disallow throwing stones while wielding a sling

There's nothing wrong with this per se, but it doesn't have much in the
way of benefits that I can come up with and is fairly confusing to the
player. This was disallowed before e42c0a68 anyways.

3 months agoRestore switch-on-autopickup behavior from pre-0.26
advil [Mon, 4 Jan 2021 21:26:48 +0000]
Restore switch-on-autopickup behavior from pre-0.26

When you ran out of one type of ammo, autoswitched to another, and then
picked up the first type, oldquivers would switch you back. It got
removed in the quiver rewrite because the code was kind of messy. This
commit restores that behavior, by popular demand. I'm not super happy
with the implementation (which unfortunately relies on a bunch of weird
legacy code) but after thinking about this for a while, I'm not sure
there's a clean way to implement this behavior.

3 months agoAdd a note about sub-ordering for fire_order
advil [Mon, 4 Jan 2021 17:04:26 +0000]
Add a note about sub-ordering for fire_order

3 months agoTweak targeting help
advil [Mon, 4 Jan 2021 15:44:11 +0000]
Tweak targeting help

Make it clearer that the quiver commands are mode-specific, also use
correct mapping for `()`.

3 months agoAdd a fallback targeter heading for firing
advil [Mon, 4 Jan 2021 15:36:28 +0000]
Add a fallback targeter heading for firing

This mostly impacts targeted abilities that don't have any labeling in
targeter mode at all (mainly old ones). It would be a good idea to do
something more comprehensive / consistent, but ability targeters are
implemented in a fairly piecemeal way (unlike e.g. spell_direction).

3 months agoSimplify quiver verbs for misc evokables
advil [Mon, 4 Jan 2021 15:21:34 +0000]
Simplify quiver verbs for misc evokables

I tried a few times to make these flavorful + non-confusing, but never
really got the second part down. Just use "Evoke".

3 months agoClean up + simplify "Powers" tab Invocations info
advil [Mon, 4 Jan 2021 01:40:11 +0000]
Clean up + simplify "Powers" tab Invocations info

The original form of this message ("piety instead of invoc") was already
kind of confusing, because most invoc gods are affected by *both* piety
and invoc (and this is described for specific powers on the Overview tab
too). In addition, it just left out gods where the "piety" part wasn't
appropriate or was too involved. This commit simplifies the skill
message to only describe the non-impact of Invocations, and shows this
message for all gods that aren't affected by invoc. Contra the
now-removed comment, there would be space to describe any additional
effects that this doesn't cover, but it's not actually that obvious to
me what this comment was talking about that is missing. (For Gozag, the
effect of gold is well-described, and the comment about WJC seems

Resolves #1662

3 months agoSet default startup name from -name at command line
advil [Mon, 4 Jan 2021 01:18:06 +0000]
Set default startup name from -name at command line

This lets a name set at the command line persist to the main menu if the
player hits esc at character selection.

Resolves #1510

3 months agoDon't double !f warning for `F`
advil [Sun, 3 Jan 2021 20:58:42 +0000]
Don't double !f warning for `F`

Resolves #1669

3 months agoFix launcher autoswitch issues (ardl)
advil [Sun, 3 Jan 2021 20:39:34 +0000]
Fix launcher autoswitch issues (ardl)

launcher_action_cycler autoswitch was broken in some cases (most
obviously when picking up a launcher for the first time with none of its
ammo in inventory) because its default initialization was with an
ammo_action, not a launcher_ammo_action.  While debugging this I found a
bunch of related issues and cleaned up some of the code slightly.

3 months agoMake player drain fully proportional and buff it
gammafunk [Sun, 3 Jan 2021 16:42:22 +0000]
Make player drain fully proportional and buff it

I originally made max HP drain split power into two components, one used
for a randomized cost and one for a proportional cost. This was to
balance the effect between low HP characters and high HP characters. Low
HP characters get penalized more an effect based on a fixed value
compared to one that's based on a percentage of max HP. Making it fully
percentage-based hurts high HP characters more, but elliptic pointed out
that this is how other max HP reduction effects like frail work. Based
on play-testing, the current drain effect is a bit weak for both monster
attacks and ability drain costs, and we'd like to buff it. Making the
effect fully proportional will let us do this without harming low HP
characters quite so much. Yes, we actually care about the poor felids
(no we don't).

This commit makes the effect fully based on the player's current max HP
and increases its strength by 33%. Now the final HP drained is simply:

1 + div_rand_round(power * max_hp, 750)

with the division being randomly rounded in the usual way. Hence we
always drain 1 MHP if our power was non-zero. Drain power is still 1 +
damage for monster attacks or a fixed cost value for abilities, as

Some quick play testing has shown early wight packs to be a bit more
effective at getting the player into lightred drain and e.g. Ru
Apocalypse to be a bit nastier. If this proves to be not enough, it's
easy to adjust that 750 divisor.

3 months agoImprove tremorstone + summons warning checks (12409)
advil [Sun, 3 Jan 2021 01:24:04 +0000]
Improve tremorstone + summons warning checks (12409)

This is a fairly minimal approach, in contrast to the potential for
refactoring: there's a lot of related code that could be consolidated
here, and it looks to me like shoot_through_monster does a bunch of
checks that doesn't need the full beam. Various other cases have the
same code duplication issue, see e.g. b68aede. However, I don't want to
mess with this stuff in a general way during feature freeze.

Partial revert of 105bc0f7bc0538ce0380fe774c2a35860f9f7c17.

3 months agoFix a butterfly+charge+quiver interaction (12410)
advil [Sun, 3 Jan 2021 01:17:21 +0000]
Fix a butterfly+charge+quiver interaction (12410)

Palentonga charge can target butterflies, but autofight code has its own
check that ignores butterflies. With autofight_throw=true, when a
butterfly was in charge range the quivered ability would therefore be
enabled, but autofight would select movement towards the distant target.
However, autofight relies on a quivered ability to be disabled to know
when to trigger movement; the net result was that it passed a distant
target through to activate the ability and gave an error.

On the assumption that players won't usually want to roll towards a
butterfly, this commit disables charge with non-threatening monsters in
range. However, charge can still be triggered towards a non-threatening
monster by using the `a` menu. As noted in the comments this is a
somewhat hacky solution, and a more general solution along the lines of
spells + non-threatening monsters would be less hacky.

3 months agoRevert "Improve tremorstone + summons warning checks (12409)"
advil [Sat, 2 Jan 2021 23:26:21 +0000]
Revert "Improve tremorstone + summons warning checks (12409)"

This reverts commit 91735a3152ac1321536d30bc7ca0037caf38fc6b.

3 months agoImprove tremorstone + summons warning checks (12409)
advil [Sat, 2 Jan 2021 23:15:54 +0000]
Improve tremorstone + summons warning checks (12409)

This is a fairly minimal approach, in contrast to the potential for
refactoring: there's a lot of related code that could be consolidated
here, and it looks to me like shoot_through_monster does a bunch of
checks that doesn't need the full beam. Various other cases have the
same code duplication issue, see e.g. b68aede. However, I don't want to
mess with this stuff in a general way during feature freeze.

3 months agoDon't perform a range check for Noxious Bog
Edgar A. Bering IV [Sat, 2 Jan 2021 14:26:37 +0000]
Don't perform a range check for Noxious Bog

3 months agoTone down Ignite Poison's effect on bog
Edgar A. Bering IV [Sat, 2 Jan 2021 13:57:39 +0000]
Tone down Ignite Poison's effect on bog

The previous interaction was bugged, since place_cloud takes a number of
turns, not a number of auts, so a duration 10x as long was being used
for the flame clouds created when igniting bogs.

Additionally, igniting every tile was left-over from
the trail-style bog. New Noxious bog places many more bog tiles
instantly, which even with the originally intended cloud duration allows
the player to surround themselves with flame-cloud covered bog (and keep
the flame clouds for a while after the bog ends at high power).

This commit reduces the flame cloud duration to a reasonable length (2-5
dAuts at max power) and only places flame clouds over a bog cell with a
one in three chance.

3 months agoClarify a prompt message
Edgar A. Bering IV [Sat, 2 Jan 2021 13:15:31 +0000]
Clarify a prompt message

3 months agoDescribe dazzle chance in the Dazzling Flash targeter
Edgar A. Bering IV [Sat, 2 Jan 2021 13:15:07 +0000]
Describe dazzle chance in the Dazzling Flash targeter

3 months agoAdd a static targeter for ignite poison
Edgar A. Bering IV [Sat, 2 Jan 2021 12:59:06 +0000]
Add a static targeter for ignite poison

3 months agoRe-refactor targeter_multiposition
Edgar A. Bering IV [Sat, 2 Jan 2021 11:29:07 +0000]
Re-refactor targeter_multiposition

Commit 464169c878 fixed some of the monster checking that
targeter_multiposition does, and subsequent commits used
targeter_multiposition as a base class for static targeters for various
LOS-enchantment effects.

The implementation of 0242afd26b had some order-of-execution finesse to
ensure that a virtual method called by the targeter_multiposition
constructor was correctly initialized. In that commit and the comments
in it I remarked there was probably a better way. Indeed, the design
smell of the constructor pointed out the following: multiposition and
multimonster targeting, while appearing similar in the ui, are
semantically different. This commit splits up users of the class:
targeter_multiposition is used when the targeted cells depend
non-locally on the monster occupying the cell, and a new targeter class
targeter_multimonster is introduced for targeting monsters in los on a
monster-by-monster basis.

The result simplifies targeter_multiposition nicely.

3 months agoAllow static-targeter preview of Confusing Touch
Edgar A. Bering IV [Fri, 1 Jan 2021 23:45:20 +0000]
Allow static-targeter preview of Confusing Touch

By enabling these two spell flags the recently implemented static
targeter interface Just Works to allow a preview of Confusing Touch
success chances. The highlighting intentionally highlights only the
player, which might make this behavior a bit hard to discover, but it
feels less misleading than "targeting" all visible monsters. The wording
could be improved, but currently the success chance display does not
allow verb customization.

Because this targeter is a bit of a kludge, I haven't made it a default
force targeter.

3 months agoAdd detailed static targeters for LOS enchantments
Edgar A. Bering IV [Fri, 1 Jan 2021 23:36:06 +0000]
Add detailed static targeters for LOS enchantments

To round out the new quiver and collection of static targeters, this
commit adds detail to the static targeters for: Cause Fear, Discord,
Alistair's Intoxication, and Metabolic Englaciation; also added is a
static targeter for the pseudo-spell Drain Life.

Each now highlights the monsters that will be affected (or at least not
outright immune). Additionally, success chance displays have been added,
so that the chance of affecting each target is available.

In an ideal world these spells would be further re-factored so that the
targeter behavior is unified with the casting behavior, the affect logic
encapsulated in beam or zap data, and the different targeting classes
unified in a single targeter_multiposition_enchantment.

For now, I am content with the UI clarity.

3 months agoAdjust Metabolic Englaciation
Edgar A. Bering IV [Fri, 1 Jan 2021 23:34:21 +0000]
Adjust Metabolic Englaciation

Simplify the formula slightly to only randomize on power and not also on
monster HD. The change uses the midpoint of the previous roll so the
power level should stay about the same, with aa slightly narrower
distribution of durations.

3 months agoFix a targeting information leak in Absolute Zero (12415)
Edgar A. Bering IV [Fri, 1 Jan 2021 23:31:49 +0000]
Fix a targeting information leak in Absolute Zero (12415)

3 months agoRefactor targeter_multiposition
Edgar A. Bering IV [Fri, 1 Jan 2021 23:26:38 +0000]
Refactor targeter_multiposition

Clarify the usage of can_affect_unseen, improve visibility checks,
re-name a parameter, and support child class overrides of affects_monster.

3 months agoRename a function for clarity
Edgar A. Bering IV [Fri, 1 Jan 2021 23:21:03 +0000]
Rename a function for clarity

desc_success_chance -> desc_wl_success_chance

3 months agoAdd a quote (that will rarely be seen)
Neil Moore [Sat, 2 Jan 2021 05:10:24 +0000]
Add a quote (that will rarely be seen)

Same as it ever was.

[skip ci]

3 months agoDon't spawn 8 will-o-the-wisps in Lair (Goratrix)
Nicholas Feinberg [Fri, 1 Jan 2021 22:51:43 +0000]
Don't spawn 8 will-o-the-wisps in Lair (Goratrix)

One will-o-the-wisp is a significant threat in Lair. 8 is death.

3 months agoFix `F`+pproj logic (10804)
advil [Fri, 1 Jan 2021 21:17:45 +0000]
Fix `F`+pproj logic (10804)

This was inverted, and I think it also shouldn't ever set MB_TRUE for
this code path.

3 months agoAdd lua support for targeted CMD_THROW_ITEM_NO_QUIVER
advil [Fri, 1 Jan 2021 20:58:11 +0000]
Add lua support for targeted CMD_THROW_ITEM_NO_QUIVER

This is a partial revert of d0772dbefd; this parameter was waiting for a
case to be added in

3 months agoSimplify throw_it (PleasingFungus)
advil [Fri, 1 Jan 2021 20:55:01 +0000]
Simplify throw_it (PleasingFungus)

This code path has become progressively refactored so that it is only
ever called from one place, and a quiver::action object provides the
full context needed to do throwing/launching; so, use that.

3 months agoRemove unused variable (Mesh)
Nicholas Feinberg [Fri, 1 Jan 2021 19:27:32 +0000]
Remove unused variable (Mesh)

3 months agoMore throwing code cleanup
Nicholas Feinberg [Fri, 1 Jan 2021 17:50:02 +0000]
More throwing code cleanup

Remove a very long-unused return variable and some other unused cases.

This whole use of `dist target` is much more complex than it needs to be
(we never pass a meaningful target in), but...

3 months agoBan shift-dir pproj (12422)
Nicholas Feinberg [Fri, 1 Jan 2021 17:42:40 +0000]
Ban shift-dir pproj (12422)

Recent quiver changes caused shift-direction aiming (which fires projectiles
in a cardinal direction) to crash the game, but it never worked correctly. In
older versions, it would aim at the map border, causing fun messages in e.g
Shoals of "There is a water there".

There's really no situation in which shift-aiming with pproj makes sense,
unless some more complex behaviour of 'aiming at the nearest enemy in that
direction' was added. Barring that, let's ban it.

3 months agoRename a mysterious 15-year-old variable
Nicholas Feinberg [Fri, 1 Jan 2021 17:03:58 +0000]
Rename a mysterious 15-year-old variable

3 months agoRemove an unused parameter
Nicholas Feinberg [Fri, 1 Jan 2021 16:58:02 +0000]
Remove an unused parameter

3 months agoDon't make Hurl Sludge also cast Blinkbolt (vt)
Nicholas Feinberg [Thu, 31 Dec 2020 18:17:33 +0000]
Don't make Hurl Sludge also cast Blinkbolt (vt)

Why are C-style switch/case statements so bad.

3 months agoHave Vehumet support Eringya's Toxic Bog (Lici)
gammafunk [Thu, 31 Dec 2020 17:36:06 +0000]
Have Vehumet support Eringya's Toxic Bog (Lici)

A direct damage spell, just not one using conjurations, so add it to the
special list.

3 months agoRecord origin of clouds that petrify the player (Tungsten)
Alan Malloy [Thu, 31 Dec 2020 11:55:28 +0000]
Record origin of clouds that petrify the player (Tungsten)

3 months agoRemove an unused spellbook 0.27-a0
wheals [Thu, 31 Dec 2020 10:44:09 +0000]
Remove an unused spellbook

3 months agoRemove insubstantial wisps 0.26-b1
Edgar A. Bering IV [Thu, 31 Dec 2020 08:17:28 +0000]
Remove insubstantial wisps

Insubstantial wisps aren't great monsters. Mechanically annoying, rarely
threatening in their vault usage, and not loreful enough to keep as a
rare vault decorating monster (compare toenail golems, which aren't
annoying and are very loreful).

After the Swamp overhaul these continued to appear in:

- assorted vaults (where they were generic electric/translocations theme
  or a now incorrect Swamp monster)
- the Foxfire card's effect list
- in the Abyss spawn list (as a Swamp guest)

None of these usages were particularly inspiring as the monster is not
great, so wisps are finally dissapated by this commit. The tile and
glyph info are retained to use as a dummy for player Wisp form.

For vaults:

- in Swamp and where they are a Swamp guest, they are replaced with
- in places where they are a generic electric threat, they are either
  removed or replaced with ball lightning (as appropriate),
- in places where they are a translocation theme piece, they are

The Foxfire card no longer summons wisps, and just has a shorter list.

The Abyss spawn has been replaced with will-o-the-wisps.

3 months agoFix some zap glyphs
Edgar A. Bering IV [Wed, 30 Dec 2020 18:30:41 +0000]
Fix some zap glyphs

Commits 2f2a4d8, f75564e, and 17de90a zapified more monster spells and
abilities, but in moving them to zap data didn't preserve the default
DCHAR_FIRED_ZAP beam glyph from mons_spell_beam. This resulted in
console animations for the affected abilities using null as the glyph,
hiding the beam.

3 months agoClarify annotations in Ctrl+O and in the manual
Goratrix [Wed, 30 Dec 2020 14:13:58 +0000]
Clarify annotations in Ctrl+O and in the manual

After commit 8436896, any level can be annotated. Update instructions
in Ctrl+O and in the manual accordingly.